2017-03-02 96 views
0

The Azure Storage library for NodeJS显示了创建任务如下:Azure存储 - NodeJS - 我可以存储对象吗?

var azure = require('azure-storage'); 
var entGen = azure.TableUtilities.entityGenerator; 
var task = { 
    PartitionKey: entGen.String('hometasks'), 
    RowKey: entGen.String('1'), 
    description: entGen.String('take out the trash'), 
    dueDate: entGen.DateTime(new Date(Date.UTC(2015, 6, 20))), 
}; 

但是,它可以存储对象(如一样的东西):

var azure = require('azure-storage'); 
var entGen = azure.TableUtilities.entityGenerator; 
var task = { 
    PartitionKey: entGen.String('hometasks'), 
    RowKey: entGen.String('1'), 
    description: entGen.String('take out the trash'), 
    dueDate: entGen.DateTime(new Date(Date.UTC(2015, 6, 20))), 
    stuff : { "abc" : "def", "ghi" : "jkl", "mno" : { "pqr" : "stf" }} 
}; 

或者我需要JSON.stringify它,并将其存储作为一个字符串?

回答

1

就你而言,stuff是JSON。表存储实体没有JSON类型。您需要串联,导致String类型。

您也可以选择对JSON文档中的每个元素使用单独的属性(并且每个实体可以包含不同的属性 - 不强制执行模式;您只需要给存储对象类型一个提示,以便你可以根据需要检索属性)。是的,当你继续嵌套JSON对象时,这会变得更加棘手,就像你的例子那样。

FYI全部支持表实体类型列表here

+0

第二项是你说我可以做的: stuff:{“abc”:entGen.String(“def”),“ghi”:{“aaa”:entGen.String(“w”)}} 或者你是否只是说我可以将它们全部移动到顶层,意识到每个实体都不具有相同的属性? – Doug

+0

我在说你要么将整个JSON串联起来,要么将每个JSON属性存储为一个单独的表实体字符串属性。没有JSON属性类型。 –

相关问题