Узел.js: разница между req.запрос[] и треб.параметры



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



спасибо.

727   3  

3 ответов:

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.params

{
  param1: 'there'
}

Express req.параметры >>

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

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

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

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

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)});
});

Comments

    Ничего не найдено.