我想将值逐个传递给lambda函数,并将该数据存储到dynamodb中,但是在执行此操作时,当我保存第一个值时,该值表示该值不能为空。
我尝试了以下操作:
添加convertEmptyValues:true
var doClient = new AWS.DynamoDB.DocumentClient({convertEmptyValues: true});
添加了三元运算符以传递值,例如
"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
},
]
};
}
答案 0 :(得分:0)
您正在检查错误的空值。您使用的三元表达式没有任何效果---具有age: x.age === null ? null : x.age
与具有age: x.age
完全相同。
但是,对于您而言,问题是在表达式x.age
中, x
的值为null
,这意味着您尝试访问age
的{{1}}属性,这会导致错误。您的三元表达式应检查的是null
本身是否为x
。
这是您代码的外观:
null