在 javaScript 中为 batchWriteItem(params,function(){}) 创建请求参数
Creating a Request Params for batchWriteItem(params,function(){}) in javaScript
我一直在尝试为 batchWriteItem() 创建参数,当我像这样创建它们时,它确实有效。
var params = {
RequestItems: {
'tableNameXYZ' : [ //hardcoded
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
]
};
但是当我在变量中有 table 名称时,我无法处理它:
var tableName = 'tableNameXYZ';
var params = {
RequestItems: {
tableName : [
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
]
};
显然这不会奏效,因为我在这里对 JSON 对象玩得很粗暴。
然后我试了这个:
var params = {};
params.RequestItems[tableName] = [
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
];
现在它向我抛出如下错误:
TypeError: Cannot set property 'tableNameXYZ' of undefined
at exports.handler (/var/task/index.js:181:32)
有人可以指出我的错误吗?
谢谢。
您出现此错误是因为:
var params = {};
创建一个没有属性的空对象(称为 params
),但是:
params.RequestItems[tableName] = [ // ...rest of code
尝试分配 params.RequestItems.the-value-of-tableName
。
但是 params
没有 属性 调用 RequestItems
所以,params.RequestItems
是未定义的。 TypeError
尝试在 undefined
.
上设置 属性(在本例中为 the-value-of-tableName
)的值
要解决此问题,请使用:
var params = {};
params.RequestItems = {}; // assign RequestItems an empty object.
params.RequestItems[tableName] = [ // ...rest of code.
我一直在尝试为 batchWriteItem() 创建参数,当我像这样创建它们时,它确实有效。
var params = {
RequestItems: {
'tableNameXYZ' : [ //hardcoded
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
]
};
但是当我在变量中有 table 名称时,我无法处理它:
var tableName = 'tableNameXYZ';
var params = {
RequestItems: {
tableName : [
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
]
};
显然这不会奏效,因为我在这里对 JSON 对象玩得很粗暴。 然后我试了这个:
var params = {};
params.RequestItems[tableName] = [
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz
},...
}
},
PutRequest: {
"Item" : {
"indexNumber":{
"N": xyz1
},...
}
}
}
];
现在它向我抛出如下错误:
TypeError: Cannot set property 'tableNameXYZ' of undefined
at exports.handler (/var/task/index.js:181:32)
有人可以指出我的错误吗? 谢谢。
您出现此错误是因为:
var params = {};
创建一个没有属性的空对象(称为 params
),但是:
params.RequestItems[tableName] = [ // ...rest of code
尝试分配 params.RequestItems.the-value-of-tableName
。
但是 params
没有 属性 调用 RequestItems
所以,params.RequestItems
是未定义的。 TypeError
尝试在 undefined
.
the-value-of-tableName
)的值
要解决此问题,请使用:
var params = {};
params.RequestItems = {}; // assign RequestItems an empty object.
params.RequestItems[tableName] = [ // ...rest of code.