0

在我的无服务器应用程序中,我收到一个包含这样数据的请求

{
  "captcha": "asdf"
}

我无法从请求正文中提取此数据。这是我的代码的样子:

module.exports.contact = (event, context, callback) => {
    var body = querystring.parse(event.body);
    var str  = JSON.stringify(body);
    var obj  = JSON.parse(str); // I know this is horribly inefficient, just testing
    if (!obj.hasOwnProperty('captcha'))
    {
        callback(null, {statusCode: 400, body: "No Captcha" + JSON.stringify(obj) + obj.captcha});
        return;
    }

我的无服务器端点发送以下响应正文:-

No Captcha{"{\n\"captcha\": \"asdf\"\n}":""}undefined

我认为因为我可以将 body 字符串化,将其解析为 obj,然后再次对其进行字符串化,并获得有效的 JSON,我应该能够获得 obj 属性验证码 - 但我不能......?

4

2 回答 2

1

body-parser如果您不想将数据流解析为 json,我建议您使用,但您可以使用 multipart body 自己完成

于 2018-08-02T17:32:06.173 回答
0

最后,我通过删除查询字符串函数并执行 var obj = JSON.parse(event.body); 解决了这个问题。

似乎我让自己误以为 event.body 需要特别解析,而实际上它只是身体,就像名字所暗示的那样

于 2018-08-02T18:08:43.460 回答