Как передать нулевое значение из JSON в DynamodB - PullRequest
0 голосов
/ 23 марта 2019

Я хочу передать значение одно за другим лямбда-функции и сохранить эти данные в DynamodB, но при этом, когда я сохраняю первое значение, значение говорит о том, что значение не может быть нулевым.

Я пробовал следующие вещи:

  1. Добавить convertEmptyValues: true

    var doClient = new AWS.DynamoDB.DocumentClient({convertEmptyValues: true});

  2. Добавлен троичный оператор для передачи значения, например,

    "age": event.age == '' ? null : event.age,

    "age": event.age === null ? null : event.age

Но я получаю ту же ошибку: Error: TypeError: Cannot read property 'age' of null at exports.handler и значение не сохраняется в базе данных.

var AWS = require("aws-sdk");

AWS.config.update({
    region: "us-east-1",
});

var doClient = new AWS.DynamoDB.DocumentClient({
  convertEmptyValues: true
});

exports.handler = function(event,callback) {
    var flows =  {
        "activities": [
          {
            "gender": event.flows.activities[0].gender,
          },
          {
            "age": event.flows.activities[1].age == '' ? null : event.flows.activities[1].age,
          },
          {
            "zipCode": event.flows.activities[2].zipCode == '' ? null : event.flows.activities[2].zipCode,
          },
          {
           //More Code
          },
        ]
      };
}

1 Ответ

0 голосов
/ 23 марта 2019

Вы проверяете неправильную вещь на нулевое значение.Тернарное выражение, которое вы используете, не имеет никакого эффекта - наличие age: x.age === null ? null : x.age точно так же, как наличие age: x.age.

Однако в вашем случае проблема заключается в том, что в выражении x.age значение x равно null, что означает, что вы 'пытается получить доступ к свойству age null, что приводит к ошибке.Ваше троичное выражение должно проверять, является ли x сам null.

Вот как должен выглядеть ваш код:

const AWS = require("aws-sdk");
AWS.config.update({
    region: "us-east-1",
});
const doClient = new AWS.DynamoDB.DocumentClient({
    convertEmptyValues: true
});

exports.handler = function(event,callback) {
    var flows =  {
        "activities": [
        {
            "gender": event.flows.activities[0].gender,
        },
        {
            "age": event.flows.activities[1] === null ? null : event.flows.activities[1].age,
        },
        {
            "zipCode": event.flows.activities[2] === null ? null : event.flows.activities[2].zipCode,
        },
        {
        //More Code
        },   
   ]
};
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...