【发布时间】:2019-03-26 23:26:25
【问题描述】:
我使用 dynamoDB 文档客户端创建了一个集合。我可以删除该集合中的项目,但是当我删除该集合中的最后一个元素时,在我发布新帖子之前什么都不会返回。然后显示所有其他数据。
const params = {
TableName: 'beta-user-' + process.env.NODE_ENV,
Key: {
username: request.username
},
UpdateExpression: "DELETE #features :feature",
ExpressionAttributeNames: { "#features" : "features" },
ExpressionAttributeValues: { ":feature": dynamodb.createSet([request.feature]) },
ReturnValues: "NONE"
};
我这样称呼它
const dynamoPromise = dynamodb.update(params).promise();
return await dynamoPromise.then(result => { // stuff })
UpdateExpression 我不认为是错的
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.DELETE
我相信问题出在ExpressionAttributeValues 如果我删除
dynamodb.createSet 我收到很多验证错误。
当我向应用程序发出获取请求时,我得到了
{
"message": [
{
"username": "x",
"feature": [
"blah",
"test"
]
},
{
"username": "z",
"feature": [
"blah"
]
},
}
我提出删除请求并从用户名 x 中删除功能 test。这有效并返回相同的响应减去test 功能。我提出另一个删除请求以删除 blah。但是当我发出get 请求时,Blah 被删除:
{
"message": {}
}
当我向该特定用户发布新帖子时,将返回其他数据。
编辑:
我认为这个问题可能是由于发电机不喜欢空集
【问题讨论】:
标签: node.js amazon-dynamodb serverless-framework