无法读取我的 lambda 函数中的特定 JSON 键

Unable to read specific JSON keys in my lambda function

在我的节点 lambda 函数中有这个未定义的问题是代码

exports.handler = async function (event, context) {
console.log('top')
console.log(event.body)
console.log(event.body.value)
console.log('bottom')

return {
    statusCode: 200,
    body: JSON.stringify(event)
} }

这里是云表截图

我是 lambda 和 post 请求的新手,因此非常感谢任何有关值键的帮助

lambda 处理程序的 event 参数的 body 属性 默认为字符串格式。如果你使用 typeof 查看 body 的数据类型,你会得到一个 return 的字符串值:

console.log(typeof event.body);  // logs 'string'

要使用对象语法访问 body 属性,您必须先使用 JSON.parse 方法解析它:

let body = JSON.parse(event.body);

为了避免顽皮的消费者意外惊喜,你可以使用我个人在我的项目中使用的这个功能:

/**
   * @function getJsonBody
   * @description Method used for retrieving the JSON body of HTTP requests.
   * @param {object} event Lambda event parameter.
   * @returns {object} JSON body of request payload.
   */
  getJsonBody(event) {
    if (event && event.body !== null && event.body !== undefined) {
      try {
        let body = JSON.parse(event.body);

        return body;
      } catch (err) {
        return null;
      }
    }

    return null;
  }