在我的AWS lambda函数上,我可以访问一个事件json,它包含一个名为body
的参数。问题是这是一个原始体字符串(未解析为单个参数)。
{
input: {
body: "------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"foo\"\r\n\r\nbar\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"media[]\"\r\n\r\nhthtth\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe\r\nContent-Disposition: form-data; name=\"media[]\"\r\n\r\nlololol\r\n------WebKitFormBoundarys3wLu6HlaCBrIExe--\r\n"
}
}
我想接受并转变为:
{
foo: 'bar',
media: [
"grgkoerpkge",
"twepgbopcib"
]
}
我不想仅使用一些膨胀的快速服务器来解析一个正文字符串。
P.S。我曾尝试使用body-parser,但似乎它仅适用于Express作为中间件
答案 0 :(得分:0)
将其作为JSON发送给您的lambda。
然后,在您的lambda中(如果使用lambda-proxy
集成),使用JSON.parse(event.body)
解析它。
答案 1 :(得分:0)
您可以通过表单或“Content-Type”标题“application / x-www-form-urlencoded”传递params。
你用“application / json”来传递它
答案 2 :(得分:0)
最近遇到了类似的问题,因为请求中的内容类型是纯文本格式,所以我使用了querystring
(内置在节点js中的模块中)来解析正文字符串,
more about querystring
const querystring = require('querystring');
&在lambda处理程序中
var jsonData = querystring.parse(event.body);