不能JSON.parse无服务器event.body

问题描述 投票:0回答:2

我一直在使用无服务器框架的一个简单函数,它在http POST中获取一些数据,进行一些分析并将结果发回。我使用无服务器离线在我的机器上本地工作但是在部署它时,我在解析event.body时遇到错误。

注销event.body它是一个如下所示的字符串:

----------------------------267253304929569989286258
Content-Disposition: form-data; name="text"

TEST
----------------------------267253304929569989286258--

因此解析失败是有意义的,但我不知道为什么会发生这种错误。有什么建议?我尝试了很多不同的东西,但我完全被难过了。

提前致谢!

serverless-framework serverless aws-serverless
2个回答
0
投票

你不能JSON.parse那个event.body导致它不是JSON。它看起来像POST的数据使用多部分表单POST样式请求而不是发送JSON。你是如何调用HTTP POST的?


0
投票

我遇到了同样的问题,经过大量的调试后发现了两个重要的事情:

1.当内容类型为application / x-www-form-urlencoded时,您可能需要以不同的方式解析数据:

const qs = require('querystring');

module.exports.run = async event => {
    try {
        const data = qs.parse(event.body);
        console.info('DATA:', data);
    } catch(e) {
        console.error(e.message);
    }
}

2.当请求的Content-Type是multipart / form-data时,解析将更加复杂。我会建议额外的依赖来解析它像multiparty或你选择的任何其他

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.