【发布时间】:2020-12-05 00:30:28
【问题描述】:
我创建了一个 deleteItem lambda 函数,如果找到它的 userId,它会删除一个项目。 userId 是作为pathParameter 传递的,如果找到了 userId 就没有问题。
let output = await deleteUser(userId);
console.log("output: " + JSON.stringify(output))
总是返回output: undefined
每次无论它是否被发现和删除。我需要来自deleteItem 操作的响应,以便我可以根据该响应返回消息User not found 或User deleted。
如何让 dynamodb 回调正常工作?
删除.js
const AWS = require('aws-sdk');
AWS.config.update({ region: 'us-east-1' });
const dynamoDB = new AWS.DynamoDB();
const tableName = process.env.TABLE_NAME;
exports.handler = async (event) => {
let userId = event.pathParameters.userid;
try {
let output = await deleteUser(userId);
console.log("output: " + JSON.stringify(output))
return {
statusCode: 200,
body: JSON.stringify({
message: "User deleted"
})
};
} catch (err) {
console.log("ERROR TIME")
console.log("ERROR:" + err)
return {
statusCode: 500,
body: JSON.stringify({
message: "User failed to be deleted"
})
};
}
async function deleteUser(userId) {
let params = {
TableName: tableName,
"Key": {
"userid": {
"S": userId.toString()
}
}
};
try {
const dbResponse = await dynamoDB.deleteItem(params).promise();
console.log("dbResponse")
console.log(dbResponse)
if (dbResponse.Item) {
console.log(`deleted row with userId of ${userId}`);
return (dbResponse);
}
} catch (err) {
console.log(`user reset failed with ${err}`);
return {
statusCode: 500,
body: JSON.stringify({
errr: err
})
};
}
}
};
【问题讨论】:
标签: node.js amazon-web-services amazon-dynamodb