Я работаю с Amazon DynamoDB и Express.
Мне нужно отобразить представление на основе данных из таблицы Amazon DynamoDB.
Мой код работает нормально, когда я работаю с API обратного вызовавместо того, чтобы пытаться использовать обещание.
Но я хочу использовать обещание, потому что для поддержания чистоты моего кода, в противном случае мне нужно вызвать res.send()
изнутри функции обратного вызова docClient.scan(params)
.
Мой код для работы с обещанием выглядит следующим образом: я не могу понять, что не так;
async function test(params){
AWS.config.loadFromPath('./awsconfigtest.json');
let docClient = new AWS.DynamoDB.DocumentClient();
await docClient.scan(params).promise();
}
Ниже приведено содержимое файла маршрута;
/* GET home page. */
router.get('/', function(req, res, next) {
let scanResults ;
let params = {
TableName: 'dummy'
};
test(params).then((data,err)=>{
console.log(data,err);
data.Items.forEach(function (element, index, array) {
scanResults.push({name: element.name, nodeId: element.nodeId});
console.log(element.name + " (" + typeof element.nodeId + ")");
});
});
console.log(scanResults);
res.render("index",{nodes:scanResults});
});