Проблема с query параметрами express node.js
Всем добрый день. Недавно начал изучать express и столкнулся с проблемой. Получая get-запрос с url, req.query получает только первый query-параметр.
Например: curl 'http://localhost:8000/users?name=Ivan' получает req.query = { "name" : "Ivan" }
А curl 'http://localhost:8000/users?name=Ivan&age=18' получает req.query = { "name" : "Ivan" } вместо ожидаемого мною { "name" : "Ivan", "age" : "18" }
const express = require('express');
const app = express();
const conf = require('./config.json');
app.get('/users', (req, res) => {
console.log(req.route);
});
app.listen(conf.port, conf.host);
Вот мой код. Объясните пожалуйста почему так, и как мне получить второй, третий и т. д. параметры?
Ответы (1 шт):
В простейшем примере такое значение req.query возможно только если в вызове curl не экранировать адрес кавычками.
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
console.log(req.query);
res.json({ok: true});
});
app.listen(3002, 'localhost');
curl 'http://localhost:3002/users?name=Ivan&age=18'
{ name: 'Ivan', age: '18' }
curl http://localhost:3002/users?name=Ivan&age=18
{ name: 'Ivan' }
Используйте Postman, если у вас нет привычки к консольным утилитам. На обучении так будет проще, а с curl-ом можно разобраться позже.