首页 > 解决方案 > 如何读取用 NodeJs 编写的 AWS Lambda 中的表单数据?

问题描述

我正在前端和后端使用 ReactJS 作为用 NodeJS 编写的 AWS API Gateway/AWS Lambda 构建应用程序。我在名为userAttributes的属性中传递了我的 React 应用程序的表单数据,如下所示:

在此处输入图像描述

我想在后端逻辑中读取这些数据。根据 Lambda 的 Cloud Watch 日志,我在 Lambda 事件中获取的表单数据为:-

  body: '------WebKitFormBoundarytTytoOIkcO2\r\n' +
    'Content-Disposition: form-data; name="userAttributes"\r\n' +
    '\r\n' +
    '[object Object]\r\n' +
    '------WebKitFormBoundarytTytrEkb0oOIkcO2--\r\n',
  isBase64Encoded: false
}

这里 [object Object] 是我的表单数据。如何解析和读取这个表单数据值?我可以读取我的其他查询字符串参数 (event.queryStringParameters.<attributes>),但不确定如何读取表单数据。

标签: node.jsreactjsaws-lambdaaws-api-gatewaymultipartform-data

解决方案


在您的 lambda 上使用https://www.npmjs.com/package/parse-multipart,您可以解析数据...

但首先

  • 将您的 api 网关中的媒体类型设置为 multipart/form-data

  • 当您将 lambda 添加到 api 网关方法时,请确保您是否选中“代理”,因为您需要将来自前端的数据作为 multipar/form-data 进行管理


推荐阅读