У меня есть код, который обновляет существующий элемент AWS DynamoDb,
Я использую метод обновления AWS DynamoDb SDK,
Я получаю сообщение об ошибке при обновлении элемента -
{ ValidationException: ExpressionAttributeValues contains invalid key: Syntax error; key: "tamt"
message: 'ExpressionAttributeValues contains invalid key: Syntax error; key: "tamt"',
code: 'ValidationException',
statusCode: 400,
retryable: false,
Ниже мой код -
module.exports.updateCart = async (constants, connection, requestBody) => {
let table = constants.tables.user_cart;
let params = {
TableName: table,
Key:{
"cart_id": requestBody.cart_id
},
UpdateExpression: "set currency = :curr, product_type = :ptype, total_amount = :tamt,"
+"total_quantity = :tqty, created_date = :cdate, expiry = :exp, items = :items",
ExpressionAttributeValues:{
"curr": requestBody.currency,
"ptype": requestBody.product_type,
"tamt": requestBody.total_amount,
"tqty": requestBody.total_quantity,
"cdate": requestBody.created_date,
"exp": requestBody.expiry,
"items" : requestBody.items
},
ReturnValues:"UPDATED_NEW"
};
console.log("Params => \n", params);
let update = util.promisify(connection.update).bind(connection);
let results = await update(params);
return results;
}
Ниже приводится консольный журнал параметров -
{
TableName: 'someTable',
Key: {
cart_id: 'someId'
},
UpdateExpression: 'set currency = :curr, product_type = :ptype, total_amount = :tamt, total_quantity = :tqty, created_date = :cdate, expiry = :exp, items = :items',
ExpressionAttributeValues: {
curr: 'USD',
ptype: 'SPECIAL',
tamt: 50,
tqty: 1,
cdate: 1558499016,
exp: 1558499016,
items: items: [{
name: 'someName',
amount: 50,
quantity: 1,
category: 'some Category'
}]
},
ReturnValues: 'UPDATED_NEW'
}
RequestBody -
{
product_type: 'SPECIAL',
user_id: 1234,
total_amount: 50,
total_quantity: 1,
currency: 'USD',
items: [{
name: 'someName',
amount: 50,
quantity: 1,
category: 'some Category'
}],
created_date: 1558499016,
expiry: 1558499016,
cart_id: 'someId'
}
Я дважды проверил, поле total_amount в таблице имеет тип Number,
В чем может быть проблема?
Ссылка -
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.03.html#GettingStarted.NodeJs.03.03