Node.js: Разница между req.query и req.params

Есть ли разница между получением аргументов QUERY_STRING через req.query [myParam] и req.params.myParam? Если да, то когда я должен использовать это?

Благодарю.

req.params содержит параметры маршрута (в части пути URL), а req.query содержит параметры запроса URL (после URL-адреса).

Вы также можете использовать req.param(name) для поиска параметра в обоих местах (а также req.body ), но этот метод теперь устарел.

Учитывая этот маршрут

 app.get('/hi/:param1', function(req,res){} ); 

и с учетом этого URL http://www.google.com/hi/there?qs1=you&qs2=tube

У вас будет:

REQ. запрос

 { qs1: 'you', qs2: 'tube' } 

REQ. Титулы

 { param1: 'there' } 

Экспресс req.params >>

Теперь вы можете получить доступ к запросу с использованием точечной нотации.

Если вы хотите получить доступ, скажите, что вы получаете запрос GET в /checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX и вы хотите извлечь использованный запрос .

 var type = req.query.type, email = req.query.email, utm = { source: req.query.utm_source, campaign: req.query.utm_campaign }; 

Парамы используются для самоопределенного параметра для получения запроса, что-то вроде (пример):

 router.get('/:userID/food/edit/:foodID', function(req, res){ //sample GET request at '/xavg234/food/edit/jb3552' var userToFind = req.params.userID;//gets xavg234 var foodToSearch = req.params.foodID;//gets jb3552 User.findOne({'userid':userToFind}) //dummy code .then(function(user){...}) .catch(function(err){console.log(err)}); }); 
Давайте будем гением компьютера.