Сервер NodeJS меняет имя ключа объекта JSON - PullRequest
0 голосов
/ 30 апреля 2018

Я отправляю запрос POST на мой сервер через $ .ajax, и мой объект JSON испытывает некоторую проблему на сервере

Код клиентской стороны:

var someArr = ["ayush","hehehe"];
        var data = {
            "profileType": "",
            "location": someArr,
            "centerPref": 0,
            "subjects": []
        };
        console.log(data.location);
        $.ajax({
            type: "POST",
            url: "/upload/furtherDetails",
            data: data    
        })

Но при входе в консоль req.body я получаю этот вывод

enter image description here

1 Ответ

0 голосов
/ 30 апреля 2018

Это потому, что ваши данные в формате JSON urlencoded. Для того, чтобы он был проанализирован в расширенный объект json, вы должны использовать специальную библиотеку для этого.

Вот как это сделать с помощью пакета body-parser:

const bodyParser = require('body-parser');
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }));

Разница составляет:

-- with: bodyParser.urlencoded({ extended: true }) --

{ profileType: '',
  location: [ 'ayush', 'hehehe' ],
  centerPref: '0' }

-- with: bodyParser.urlencoded({ extended: false }) -- 

{ profileType: '',
  'location[]': [ 'ayush', 'hehehe' ],
  centerPref: '0' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...