在事件中传递 JSON 文件:事件无法读取键,只能读取值

passing a JSON file in event: event cannot read keys, only values

所以我有这个简单的代码:

module.exports.getEstimate = (event, context, callback) => {
  console.log('event init', event.resource);
  console.log('message', event.message);
  console.log('EVENTS', event);
};

我在日志中看到了这个:

INFO    event init /get-quotation
INFO    message undefined
INFO    EVENTS { resource: '/get-quotation', isBase64Encoded: false }henlo"\n}',api.us-east-1.amazonaws.com',3' ],t)' ],', 

然后我通过 Postman 传递这个 body:

{
    "message":"henlo"
}

我曾经在 AWS Lambda 中编写代码,当我调用 event.message 时,"henlo" 将是值,但这里不是,它说 undefined 所以我记录了整个事件正如您所看到的,当我 console.log 整个事件时,我可以看到 "henlo" 作为日志的一部分,但密钥 "message" 不存在。我如何调用 "henlo"

这也是一个 Post 请求。

如果这是一个使用 JSON 作为正文的简单 POST 请求,这就是我通常获取正文的方式

const body = JSON.parse(event.body)

然后你可以使用不同的方式来获取它的键和值:

Object.keys

const keys = Object.keys(body);

简单地访问正文的属性

const message = body.message;

或对象解构

const { message } = body.message

编辑:为使用事件文件调用的 lambda 添加信息

那种情况我通常会

const body = JSON.parse(event)

而不是

const body = JSON.parse(event.body)

其余不变

希望对您有所帮助!