我正在尝试将数据写入不同的表,表名通过get请求传递。
var tableName = event.tableName.toString();
当我编写硬编码的tableName时,它工作正常,但是当我编写变量Name时,它将引发错误。
2018-11-20T21:09:31.532Z 928e237c-ed08-11e8-a312-539d290e67fc {“ errorMessage”:“找不到请求的资源”,“ errorType”:“ ResourceNotFoundException”,“ stackTrace”:[“请求。 extractError(/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:48:27)","Request.callListeners(/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105 :20)“,” Request.emit(/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)","Request.emit(/ var / runtime / node_modules / aws-sdk / lib /request.js:683:14)","Request.transition(/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)","AcceptorStateMachine.runTo(/ var / runtime / node_modules /aws-sdk/lib/state_machine.js:14:12)","/"var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10“,”请求。(/ var / runtime / node_modules /aws-sdk/lib/request.js:38:9)“,”请求。(/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)","Request.callListeners(/ var / runtime / node_modules / aws-sdk / lib / sequential_executor.js:115:18)“]} END RequestId:928e237c-ed08-11e8-a312-539d290e67fc REPORT RequestId:928e237c-ed08-11e8-a312-539d290e67fc持续时间:124.41 ms计费持续时间:200 ms内存大小:1024 MB使用的最大内存:33 MB
代码如下:
var params = {
RequestItems: {
tableName : [
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": r1index
},
"DateandTime" :{
"S": DnT1
} ,
"roadId" :{
"N": id
},
"x1_axis":{
"S": x11
},
"y1_axis":{
"S": y11
},
"z1_axis":{
"S": z11
},
"x2_axis":{
"S": x21
},
"y2_axis":{
"S": y21
},
"z2_axis":{
"S": z21
},
"latitude":{
"S": lat1
},
"longitude":{
"S":lng1
}
}
}
},
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": r2index
},
"DateandTime" :{
"S": DnT2
} ,
"roadId" :{
"N": id
},
"x1_axis":{
"S": x12
},
"y1_axis":{
"S": y12
},
"z1_axis":{
"S": z12
},
"x2_axis":{
"S": x22
},
"y2_axis":{
"S": y22
},
"z2_axis":{
"S": z22
},
"latitude":{
"S": lat2
},
"longitude":{
"S":lng2
}
}
}
},
{
PutRequest: {
"Item" : {
"indexNumber":{
"N": r3index
},
"DateandTime" :{
"S": DnT3
} ,
"roadId" :{
"N": id
},
"x1_axis":{
"S": x13
},
"y1_axis":{
"S": y13
},
"z1_axis":{
"S": z13
},
"x2_axis":{
"S": x23
},
"y2_axis":{
"S": y23
},
"z2_axis":{
"S": z23
},
"latitude":{
"S": lat3
},
"longitude":{
"S":lng3
}
}
}
}
]
} };
答案 0 :(得分:1)
我认为您的json不正确。定义
之类的RequestItems对象时RequestItems: { tableName: [...] }
您实际上是在硬编码字符串“ tableName”作为属性,而不是硬编码为“ tableName”的变量。这就是为什么没有这样的表的原因。
es6解决方案是这样做:
RequestItems: { [tableName]: [...] }
老式的解决方案是这样做:
var RequestItems = {};
RequestItems[tableName] = [...];
请参见How To Set A JS object property name from a variable以供参考
编辑:
有关更完整的解决方案,请尝试:
var params = {};
params.RequestItems = {};
params.RequestItems[tableName] = [...]