Основные различия между req.query
и req.param
в Express
- Чем они отличаются друг от друга
- Когда использовать, и в каких случаях
Предположим, что клиент отправляет, скажем, пару Android (ключ, значение) в запросе ... какой из них использовать?
[РЕДАКТИРОВАТЬ]
Предположим, что Android отправляет запрос POST -> Намерение состоит в том, чтобы отправить (ключ, значение) клиенту, а сервер должен выполнить запрос к базе данных на основе значения на сервере и вернуть ответ JSON
Посмотрите :: на этот вопрос для программы, на которую я ссылался :: Программа Simple Express для запроса результата
req.query
иreq.param
?Ответы:
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
это функция, которая извлекает параметры из запроса. Все это можно найти здесь .ОБНОВИТЬ
Если это глагол a,
POST
и вы используете егоbodyParser
, тогда вы сможете получить тело формы, с которым работаетеreq.body
. Это будет проанализированная JS-версияPOST
редактируемой формы.источник
req.query
- это строка запроса, отправленная на сервер, например/page?
test = 1 ,req.param
- это параметры, переданные обработчику.app.get('/user/:id', handler);
, собираясь/user/blah
,req.param.id
вернетсяblah
;источник
req.data
, если он GET, то будет вreq.param
c.Param("id") == ""
Я бы предложил использовать следующие
req.param('<param_name>')
req.param ("") работает следующим образом
Поиск выполняется в следующем порядке:
Для ясности следует отдавать предпочтение прямому доступу к req.body, req.params и req.query - если вы действительно не принимаете ввод от каждого объекта.
Ссылка: http://expressjs.com/4x/api.html#req.param
источник
Передача параметров
GET request to "/cars/honda"
возвращает список моделей автомобилей Honda
Прохождение запроса
GET request to "/car/honda?color=blue"
возвращает список моделей автомобилей Honda, но с фильтром, поэтому возвращаются только модели с синим цветом.
Нет смысла добавлять эти фильтры в параметры URL-адреса (/ car / honda / color / blue), потому что, согласно REST, это означало бы, что мы хотим получить кучу информации о «синем» цвете. Поскольку нам действительно нужен отфильтрованный список моделей Honda, мы используем строки запроса для фильтрации возвращаемых результатов.
Обратите внимание, что строки запроса на самом деле представляют собой пары {ключ: значение} в несколько другом формате:? Ключ1 = значение1 & ключ2 = значение2 & ключ3 = значение3.
источник