req.query и req.param в ExpressJS
Основные различия между req.query
и req.param
в Express
- Как оба отличаются друг от друга
- Когда использовать тогда в каких случаях
Предположим, что клиент отправляет в запрос запрос пару Android (ключ, значение)........ какой из них использовать?
[EDIT]
Предположим, что android отправляет запрос POST → Намерение - отправить (ключ, значение) клиенту, а сервер должен выполнить запрос базы данных на основе значения на сервере и вернуть ответ JSON
Посмотрите:: на этот вопрос для указанной мной программы:: Программа Simple Express для запроса результата
Ответы
Ответ 1
req.query
вернет объект JS после разбора строки запроса.
/user? name = tom & age = 55 - req.query
даст {name:"tom", age: "55"}
req.params
вернет параметры в согласованном маршруте.
Если ваш маршрут является /user/: id, и вы делаете запрос /user/ 5 - req.params
, вы получите {id: "5"}
req.param
- это функция, которая отбирает параметры из запроса. Все это можно найти здесь.
UPDATE
Если глагол POST
, и вы используете bodyParser
, то вы должны иметь возможность получить тело формы в вашей функции с помощью req.body
. Это будет проанализированная версия JS формы POST
ed.
Ответ 2
Я бы предложил использовать следующие
req.param('<param_name>')
req.param("") работает как
Поиск выполняется в следующем порядке:
req.params
req.body
req.query
Прямой доступ к req.body, req.params и req.query должен быть одобрен для ясности - если вы действительно не принимаете ввод от каждого объекта.
Ссылка: http://expressjs.com/4x/api.html#req.param
Ответ 3
req.query
- строка запроса, отправленная на сервер, пример /page?
test = 1, req.param
- это параметры, переданные обработчику.
app.get('/user/:id', handler);
, идя в /user/blah
, req.param.id
вернет blah
;
Ответ 4
Передача параметров
GET request to "/cars/honda"
возвращает список моделей автомобилей Honda
Проходящий запрос
GET request to "/car/honda?color=blue"
возвращает список моделей автомобилей Honda, но отфильтрованный, поэтому возвращаются только модели со стандартным синим цветом.
Не имеет смысла добавлять эти фильтры в параметры URL (/car/honda/color/blue), потому что согласно REST это подразумевает, что мы хотим получить кучу информации о цвете "синий". Поскольку нам действительно нужен отфильтрованный список моделей Honda, мы используем строки запросов для фильтрации возвращаемых результатов.
Обратите внимание, что строки запроса на самом деле представляют собой просто пары {key: value} в несколько ином формате:? Key1 = value1 & key2 = value2 & key3 = value3.
Ответ 5
Предположим, вы определили название вашего маршрута следующим образом:
https://localhost:3000/user/:userid
который станет:
https://localhost:3000/user/5896544
Вот, если вы напечатаете: request.params
{
userId : 5896544
}
так
request.params.userId = 5896544
поэтому request.params - это объект, содержащий свойства для именованного маршрута
и request.query происходит из параметров запроса в URL, например:
https://localhost:3000/user?userId=5896544
request.query
{
userId: 5896544
}
так
request.query.userId = 5896544