如何从JSON传递空值到dynamodb

时间:2019-03-23 08:23:52

标签: node.js aws-lambda amazon-dynamodb

我想将值逐个传递给lambda函数,并将该数据存储到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 :(得分:0)

您正在检查错误的空值。您使用的三元表达式没有任何效果---具有age: x.age === null ? null : x.age与具有age: x.age完全相同。

但是,对于您而言,问题是在表达式x.age中, x 的值为null ,这意味着您尝试访问age的{​​{1}}属性,这会导致错误。您的三元表达式应检查的是null本身是否为x

这是您代码的外观:

null