Body-parser не может / не анализирует параметры urlencoded из запроса GET - PullRequest
0 голосов
/ 31 октября 2019

Я создаю веб-платформу с сервером Nodejs. Я пытаюсь получить данные в кодировке Urlen, отправленные с моего компьютера, но не могу.

Как отправить запрос GET:

xhr.open("GET", address + "?limit=1&offset=1",true);
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
xhr.addEventListener("readystatechange", processRequest, false);

На стороне сервера:

const bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: true });

app.get('/guid_list', urlencodedParser, function (req, res) {
  console.log(req.body.limit);
  console.log(req.body.offset);
  var headerjwt = HeaderGetJWT(req);
...
}

У меня нет проблем с получением токена jwt, который я отправляю, но всегда получаю неопределенное значение для параметров urlencoded. Мне было интересно, должен ли я вместо этого использовать многокомпонентный тип контента, так как я отправляю и токен, и урлен-кодированные данные? И, возможно, модуль «multer» в этом случае, так как body-Parser не поддерживает этот тип контента.

1 Ответ

1 голос
/ 31 октября 2019

Я бы предложил получить доступ к вашим параметрам в Node.js следующим образом (поскольку они передаются как параметры запроса):

app.get('/guid_list', parser, function (req, res) {
    console.log("req.query.limit:", req.query.limit);
    console.log("req.query.offset:", req.query.offset);

});

или просто зарегистрировать все параметры:

app.get('/guid_list', parser, function (req, res) {
    console.log("req.query:", req.query);
});
...