JSON.value дает неопределенное значение, несмотря на отображаемое значение JSON.stringify
В моем приложении без сервера я получаю запрос с такими данными
{
"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 ответа
Я рекомендую вам использовать body-parser
если вы не хотите анализировать поток данных в json, но вы можете сделать это самостоятельно, используя составное тело
В конце концов я решил эту проблему, удалив функцию querystring и выполнив var obj = JSON.parse(event.body);
Похоже, я запутался в том, что поверил в это событие. Тебе нужно специально разобрать, когда на самом деле это просто тело, как следует из названия