尽管JSON.stringify显示值

时间:2018-08-02 16:27:18

标签: javascript aws-serverless

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

{
  "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

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

2 个答案:

答案 0 :(得分:1)

如果您不想将数据流解析为json,我建议您使用body-parser,但是您可以自己使用多部分主体来实现

答案 1 :(得分:0)

最后,我通过删除querystring函数并执行var obj = JSON.parse(event.body);

好像我让自己感到困惑的是,我认为event.body实际上必须像它的名字一样被专门解析,