#javascript #node.js #amazon-web-services #amazon-dynamodb
#javascript #node.js #amazon-веб-сервисы #amazon-dynamodb
Вопрос:
У меня есть этот пример кода создания данных dynamo db
var AWS = require("aws-sdk");
let awsConfig = {
"region": "ap-south-1",
"endpoint": "http://dynamodb.ap-south-1.amazonaws.com",
"accessKeyId": "xxxxxxxxxxxxxxxxx", "secretAccessKey": "xxxxxxxxxxxxxxxxxxxxxxx"
};
AWS.config.update(awsConfig);
let docClient = new AWS.DynamoDB.DocumentClient();
console.log(docClient);
let save = function () {
var input = {
"task": "example-1@gmail.com"
};
var params = {
TableName: "todos",
Item: input
};
docClient.put(params, function (err, data) {
if (err) {
console.log("error - " JSON.stringify(err, null, 2));
} else {
console.log(data);
}
});
}
save();
Теперь я преобразовал это в форму асинхронного ожидания
const create = async (docClient,payload,tableName) =>{
try {
console.log(payload);
const createdDoc = await docClient.put({TableName:tableName,Item:payload})
console.log(createdDoc);
} catch (error) {
console.log(error);
}
}
create(docClient,{"task":"sample"},"todos")
Этот код не выдал мне ошибку и не добавил данные в таблицы dynamo DB
Комментарии:
1. Возвращает ли put обещание? Если нет, то оберните весь вызов в обещание и вызовите resolve() в обратном вызове, когда закончите.
Ответ №1:
Вы должны вызвать .promise()
результат .put()
вызова:
const createdDoc = await docClient.put({ … }).promise();
Смотрите Документы для AWS.DynamoDB.DocumentClient.put()
и AWS.Request.promise()
.