尽管JSON.stringify显示了值,但JSON.value给出了未定义的值



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

{
"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属性captcha-但我做不到。。?

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

最后,我通过删除querystring函数并执行var obj=JSON.parse(event.body(来解决这个问题;

似乎我把自己弄糊涂了,以为event.body需要特别解析,而事实上它只是身体,就像的名字所暗示的那样

最新更新