【问题标题】:passing a JSON file in event: event cannot read keys, only values在事件中传递 JSON 文件:事件无法读取键,只能读取值
【发布时间】:2019-06-26 16:04:37
【问题描述】:

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

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)' ],', 

我通过邮递员传递这个身体:

{
    "message":"henlo"
}

我曾经在 AWS Lambda 中编码,当我调用 event.message 时,“henlo”将是值,但在这里它不是,它说 undefined 所以我记录了整个事件,正如你在控制台中看到的那样记录整个事件,我可以看到“henlo”作为日志的一部分,但关键的“消息”不存在。我怎么打电话给"henlo"

这也是一个发布请求。

【问题讨论】:

    标签: javascript node.js serverless-framework


    【解决方案1】:

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

    const body = JSON.parse(event.body)
    

    那么你可以使用不同的方式来获取它的key和vaue:

    对象.keys

    const keys = Object.keys(body);
    

    简单地访问 body 的属性

    const message = body.message;
    

    或对象解构

    const { message } = body.message
    

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

    在那种情况下我通常会这样做

    const body = JSON.parse(event)
    

    而不是

    const body = JSON.parse(event.body)
    

    其余的保持不变

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 2011-02-27
      相关资源
      最近更新 更多