【发布时间】:2018-05-30 07:20:31
【问题描述】:
我是 node js dynamo db 的新手,我编写了一个 node js sdk 来从 dynamodb 的表中获取一行。它正在正确但不是立即获取数据,为此我出错了
我的代码低于一个简单的代码
var AWS = require("aws-sdk");
var config = function(){
AWS.config.update({region: 'us-east-1'});
// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
var params = {
TableName: 'tblConfigs',
// Key: {
// "id" : {S: "1"},
// }
ExpressionAttributeValues: {
":v1": {
S: "1"
}
},
FilterExpression: "id = :v1",
};
var v;
var json = ddb.scan(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
v = data;
// console.log(JSON.stringify(data.Item));
// return JSON.stringify(data.Item);
}
});
// if(v=="u")
// for(var i=0;)
v = v.Items[0];
// for()
var con = {
"host": v.endpoint.S,
"user": v.endpoint.username.S,
"password": v.endpoint.password.S,
"database": v.endpoint.database_name.S
};
return con;
}
我得到了以下错误
> config()
TypeError: Cannot read property 'Items' of undefined
at config (repl:31:7)
因为 v 是未定义的,所以它给出了错误,但是当我在节点控制台中执行代码时 v 不是未定义的,它第一次给出未定义的下一次给出值
如下图
> v
{ Items:
[ { password: [Object],
stage: [Object],
username: [Object],
id: [Object],
endpoint: [Object],
database_name: [Object] } ],
Count: 1,
ScannedCount: 1 }
我怎样才能在一段时间后立即获取该行? dynamodb 有什么好的方法吗?
【问题讨论】:
标签: javascript node.js amazon-web-services amazon-dynamodb