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