Я новичок в узле JS Dynamo DB. Я написал узел 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, я пытался, получить, getItem, сканирование, запрос все дают данные правильно, но не сразу ... Пожалуйста, предложите