0
我想编写一个函数来更新dynamodb中给定的参数。node.js将参数传递给DynamoDB updateItem方法
例如,在dynamodb表,其中每一个用户id的关键是我喜欢的值
{ "categoryname": "a", "skillState": "a", "skipcount": 1, "userId": "amzn1.ask.account.xxx” }
我想设置"categoryname": "b"
虽然有可能是10-15场这样所以我不想硬编码字段名称。
function (userId,itemToUpdate,itemValue,callback) {
var updateExpressionString = "SET #"+itemToUpdate+" =:val1";
var expressionAtt = '#'+itemToUpdate + '';
console.log(updateExpressionString)
console.log(expressionAtt)
this.dynamodb.updateItem({
TableName: constants.dynamoDBDetailTableName,
Key: {
userId: {
S: userId
}
},
UpdateExpression: updateExpressionString,
ExpressionAttributeNames : {
expressionAtt : itemToUpdate
},
ExpressionAttributeValues : {
':val1': {'S':itemValue}
}
}, function (err, data) {
if (err) {
console.log(err)
console.log('Error ')
} else if (data.Item === undefined) {
}else {
console.log(data)
}
});
}
在ExpressionAttributeNames:
{ValidationException:ExpressionAttributeNames包含无效重点:语法错误;键:“expressionAtt”
这引发错误显然认为expressionAtt
是关键,而它是一个局部变量。
我是新来的node.js,怎么可以通过局部变量在处理这个对ExpressionAttributeNames
和ExpressionAttributeValues