#amazon-web-services #aws-lambda #amazon-dynamodb
#amazon-веб-сервисы #aws-lambda #amazon-dynamodb
Вопрос:
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({region: 'ap-south-1', apiVersion: '2012-08-10'});
exports.handler = (event, context, callback) => {
updateExpression = null;
var expressionAttributeValues = {};
if (event.father_status != undefined) {
if (updateExpression == null) {
updateExpression = "set father_status = :fs";
}
else {
updateExpression = ", father_status = :fs"
}
expressionAttributeValues.fs = {S: event.father_status};
}
if (event.mother_status != undefined){
if (updateExpression == null) {
updateExpression = "set mother_status = :ms";
}else {
updateExpression = ", mother_status = :ms"
}
expressionAttributeValues.ms = {S: event.mother_status};
}
var params = {
TableName: "user-family-background",
Key:{
"user_id": {
S: event.user_id
}
},
UpdateExpression: updateExpression,
ExpressionAttributeValues: expressionAttributeValues,
ReturnValues:"ALL_NEW"
};
dynamodb.updateItem(params, function(err, data) {
if(err){
console.log("error: " err);
callback(err);
}
else {
console.log("sucsess: " JSON.stringify(data));
callback(null, data);
}
});
console.log(params);
console.log(updateExpression);
console.log(JSON.stringify(expressionAttributeValues));
};
Я хочу создать JSON для «expressionAttributeValeus», который выглядит примерно так:
{ ':fs': { S: 'employed' }, ':ms': { S: 'homemaker' } }
но я получаю JSON вот так
{ 'fs': { S: 'employed' }, 'ms': { S: 'homemaker' } }
без (: двоеточие перед «fs» и «ms»)
Если кто-нибудь может помочь, это будет оценено.
Ответ №1:
Измените свой код на
expressionAttributeValues[':fs'] = {S: event.father_status};
и
expressionAttributeValues[':ms'] = {S: event.mother_status};
Комментарии:
1. привет, спасибо #cementblocks, вы решили мою проблему. очень благодарен вам.