2016-11-07 2 views
4

Когда я хочу добавить свои объекты (или сущности) javascript в мое хранилище таблиц Azure, мне сначала нужно запустить их через entityGenerator.Самый простой способ сопоставления данных данных хранилища данных Azure в Node.js

Мои объекты могут выглядеть следующим образом:

{ 
    id: 1, 
    name: 'foo', 
    timestamp: new Date() 
} 

Субъектами мне нужно перейти к TableService будут выглядеть так:

{ 
    id: { '_': 1, '$': 'Edm.Int32' }, 
    name: { '_': 'foo', '$': 'Edm.String' }, 
    timestamp:{ '_': new Date(), '$': 'Edm.DateTime' }, 
} 

Это также формат, в котором предприятия возвращаются из TableService.

Для сопоставления своих объектов в правильном формате для их отправки в хранилище таблиц довольно просто, но я не нашел простой способ конвертировать возвращаемые объекты из моей службы обратно в обычные объекты JavaScript, с которыми я могу легко работать ,

Я мог бы создать какую-то общую функцию mapper, чтобы получить значения из свойства _ на объектах, но кажется, что некоторые свойства метаданных также передаются самим сущностям.

Кто-нибудь знает простой способ сопоставления объектов JavaScript и объектов Azure Table Storage?

Является ли (или должна) эта функциональность быть включенной в библиотеку azure-storage?

ответ

-1

As Azure Storage SDK для узла реализован с использованием API хранения данных. Чтобы использовать ресурсы Azure Storage, вы можете использовать SDK и реализовывать с помощью Rest API самостоятельно.

И согласно ссылке API, E.G. Insert Entity, мы должны произвести тело запроса как:

{ 
    "Address":"Mountain View", 
    "Age":23, 
    "AmountDue":200.23, 
    "[email protected]":"Edm.Guid", 
    "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833", 
    "[email protected]":"Edm.DateTime", 
    "CustomerSince":"2008-07-10T00:00:00", 
    "IsActive":true, 
    "[email protected]":"Edm.Int64", 
    "NumberOfOrders":"255", 
    "PartitionKey":"mypartitionkey", 
    "RowKey":"myrowkey" 
} 

Что означает, что мы должны задаваемая тип свойств в организме.

Таким образом, самый простой способ генерации объектов таблицы, на мой взгляд, - использовать SDK Azure Storage через функцию entityGenerator.

Любая дополнительная забота, пожалуйста, сообщите мне.

+2

Я понимаю потребность в entityGenerator, но мне интересно, можно ли вернуть исходные значения из TableService (https://github.com/Azure/azure-storage-node/blob/master/lib/services /table/internal/odatahandler.js#L155). Мне не нужны все эти типы OData и метаданные на моих объектах JavaScript, как только они будут извлечены из моей таблицы. Есть ли способ вернуть эту rawEntity из odatahandler? – Schaemelhout