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);

Похоже, я запутался в том, что поверил в это событие. Тебе нужно специально разобрать, когда на самом деле это просто тело, как следует из названия

Другие вопросы по тегам