从 Azure Table 存储中返回原始实体 Node.js
Returning raw entities from Azure Table Storage in Node.js
我的 JavaScript objects/entities 看起来像这样:
{
id: 1,
name: 'foo',
timestamp: new Date()
}
我需要传递给 Azure TableService 的实体看起来像这样:
{
id: { '_': 1, '$': 'Edm.Int32' },
name: { '_': 'foo', '$': 'Edm.String' },
timestamp:{ '_': new Date(), '$': 'Edm.DateTime' },
}
这可以使用 entityGenerator
轻松完成,这也是从 TableService return 编辑实体的格式。
当 fetching data 来自 table 时,是否可以 return 来自 TableService 的原始值?
我的 JavaScript 对象并不需要所有这些 OData types and metadata。
我可能需要使用类似 PropertyResolver 的东西,但文档非常混乱。
您可以使用 entityResolver
来实现。
示例:
var entityResolver = function(entity) {
var resolvedEntity = {};
for(key in entity) {
resolvedEntity[key] = entity[key]._;
}
return resolvedEntity;
}
var options = {};
options.entityResolver = entityResolver;
tableSvc.retrieveEntity('mytable', 'hometasks', '1', options, function(error, result, response) {
if(!error) {
console.log('result: ', result);
}
});
尝试使用 options
参数怎么样?
tableService.retrieveEntity(tableName, partitionKey, rowKey, {payloadFormat:"application/json;odata=nometadata"}, function(error, result, response) {});
它也可以用于查询:
tableService.queryEntities(tableName, query, null,{payloadFormat:"application/json;odata=nometadata"}, function(error,result, response) {});
为了变得更干净 json,您可以使用 response.body
而不是 result
。
示例:
tableService.retrieveEntity(tableName, partitionKey, rowKey, {payloadFormat:"application/json;odata=nometadata"}, function(error, result, response) {
if (!error)
{
var myEntity = response.body;
}
});
我的 JavaScript objects/entities 看起来像这样:
{
id: 1,
name: 'foo',
timestamp: new Date()
}
我需要传递给 Azure TableService 的实体看起来像这样:
{
id: { '_': 1, '$': 'Edm.Int32' },
name: { '_': 'foo', '$': 'Edm.String' },
timestamp:{ '_': new Date(), '$': 'Edm.DateTime' },
}
这可以使用 entityGenerator
轻松完成,这也是从 TableService return 编辑实体的格式。
当 fetching data 来自 table 时,是否可以 return 来自 TableService 的原始值? 我的 JavaScript 对象并不需要所有这些 OData types and metadata。
我可能需要使用类似 PropertyResolver 的东西,但文档非常混乱。
您可以使用 entityResolver
来实现。
示例:
var entityResolver = function(entity) {
var resolvedEntity = {};
for(key in entity) {
resolvedEntity[key] = entity[key]._;
}
return resolvedEntity;
}
var options = {};
options.entityResolver = entityResolver;
tableSvc.retrieveEntity('mytable', 'hometasks', '1', options, function(error, result, response) {
if(!error) {
console.log('result: ', result);
}
});
尝试使用 options
参数怎么样?
tableService.retrieveEntity(tableName, partitionKey, rowKey, {payloadFormat:"application/json;odata=nometadata"}, function(error, result, response) {});
它也可以用于查询:
tableService.queryEntities(tableName, query, null,{payloadFormat:"application/json;odata=nometadata"}, function(error,result, response) {});
为了变得更干净 json,您可以使用 response.body
而不是 result
。
示例:
tableService.retrieveEntity(tableName, partitionKey, rowKey, {payloadFormat:"application/json;odata=nometadata"}, function(error, result, response) {
if (!error)
{
var myEntity = response.body;
}
});