我正在尝试使用Lambda从DynamoDB获取数据但不知何故数据变空。请参阅下面的lambda代码。
dynamodb.getItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
callback(null, [{Name: +dataField.Name.S, Birthdate:
+dataField.Birthdate.N, Phone: +dataField.Phone.N, Address:
+dataField.Address.S, Role: +dataField.Role.S}]);
}
});
OUTPUT:
[
{
"Name" : ,
"Birthdate" : ,
"Phone" : ,
"Address" : ,
"Role" :
}
]
答案 0 :(得分:0)
请将您首先引用的代码更改为回调数据并查看data.Item为getItem返回Item中的项目(如果您的参数是正确的,并且肯定是一个对象传递给您的参数):
dynamodb.getItem(params, function(err, data) {
if (err) {
console.log(err);
callback(err);
} else {
console.log(data);
let dataField = data.Item;
callback(null, [{Name: +dataField.Name.S, Birthdate:
+dataField.Birthdate.N, Phone: +dataField.Phone.N, Address:
+dataField.Address.S, Role: +dataField.Role.S}]);
}
});
答案 1 :(得分:0)
请删除在每个字符串值之前加前缀的“ +”号。
代替这个:(不要这样做)
for(int length = input.length()-1; length >= 0; length--)
执行以下操作:
callback(null, [{
Name: +dataField.Name.S,
Birthdate: +dataField.Birthdate.N,
Phone: +dataField.Phone.N,
Address: +dataField.Address.S,
Role: +dataField.Role.S
}]);