【发布时间】:2019-08-14 04:02:53
【问题描述】:
我想将值一个一个地传递给 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
},
]
};
}
【问题讨论】:
-
从您得到的错误看来,
event.flows.activities[1]是null。您应该确保该函数获得预期值。 -
这个函数会在我传值后获取值,因为到那时它应该作为空值传递。
标签: node.js aws-lambda amazon-dynamodb