我一直在使用无服务器框架的一个简单函数,它在http POST中获取一些数据,进行一些分析并将结果发回。我使用无服务器离线在我的机器上本地工作但是在部署它时,我在解析event.body时遇到错误。
注销event.body它是一个如下所示的字符串:
----------------------------267253304929569989286258
Content-Disposition: form-data; name="text"
TEST
----------------------------267253304929569989286258--
因此解析失败是有意义的,但我不知道为什么会发生这种错误。有什么建议?我尝试了很多不同的东西,但我完全被难过了。
提前致谢!
你不能JSON.parse那个event.body导致它不是JSON。它看起来像POST的数据使用多部分表单POST样式请求而不是发送JSON。你是如何调用HTTP POST的?
我遇到了同样的问题,经过大量的调试后发现了两个重要的事情:
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或你选择的任何其他