我一直在使用无服务器框架开发一个简单的功能,该框架在http POST中获取一些数据,进行一些分析并将结果发送回去。我使用无服务器离线在计算机上本地运行它,但是在部署它时,解析event.body时出错。
注销该事件。它是一个类似于以下内容的字符串:
----------------------------267253304929569989286258
Content-Disposition: form-data; name="text"
TEST
----------------------------267253304929569989286258--
所以解析失败很有意义,但是我不知道为什么会发生此错误。 有什么建议么?我尝试了很多不同的方法,但完全陷入困境。
谢谢!
答案 0 :(得分:0)
您无法JSON.parse该event.body,因为它不是JSON。看起来无论发布什么,数据都使用多部分形式的POST样式请求而不是发送JSON。您如何调用HTTP POST?
答案 1 :(得分:0)
我遇到了同样的问题,经过大量调试后发现了2件重要的事情:
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或您选择的任何其他
那样额外解析它答案 2 :(得分:0)