Как создать параметры среды выполнения для updateitem dynamodb в AWS Lambda node.js

#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, вы решили мою проблему. очень благодарен вам.