C'è una differenza tra l'ottenimento di argomenti query_string via req.query [myParam] e req.params.myParam? Se sì, quando dovrei usare quale?Node.js: Differenza tra req.query [] e req.params
Grazie.
C'è una differenza tra l'ottenimento di argomenti query_string via req.query [myParam] e req.params.myParam? Se sì, quando dovrei usare quale?Node.js: Differenza tra req.query [] e req.params
Grazie.
req.params
contiene parametri del percorso (nella parte di percorso del URL), e req.query
contiene i parametri di query URL (dopo il ?
nell'URL).
È inoltre possibile utilizzare req.param(name)
per cercare un parametro in entrambe le posizioni (nonché req.body
), ma questo metodo è ora deprecato.
Dato questo percorso
app.get('/hi/:param1', function(req,res){});
e dato questo URL http://www.google.com/hi/there?qs1=you&qs2=tube
Avrete:
req. interrogazione
{
qs1: 'you',
qs2: 'tube'
}
req. params
{
param1: 'there'
}
Si dovrebbe essere in grado di accedere alla query usando la notazione punto ora.
Se si desidera accedere dire si sta ricevendo una richiesta GET a /checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX
e si desidera prendere il interrogazione utilizzato.
var type = req.query.type,
email = req.query.email,
utm = {
source: req.query.utm_source,
campaign: req.query.utm_campaign
};
Parametri sono utilizzati per il parametro definito sé per la ricezione richiesta, qualcosa di simile (esempio):
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)});
});
Ah, ok, grazie, in modo che entrambi è fornito da espresso. E i dati POST posso accedere tramite req.body.myParam? –
Giusto. Quale usare dipende da cosa stai cercando di fare. – JohnnyHK
Nota anche: "L'accesso diretto a req.body, req.params e req.query dovrebbe essere favorito per maggiore chiarezza, a meno che tu non accetti realmente l'input da ciascun oggetto." - la documentazione express –