Disons que j'ai une route / ressource
. Je peux appeler cette route avec un paramètre de requête / ressource? Param = ABC
que je peux récupérer dans Node avec:
app.get('/ressource', function (req, res) { const parameter = req.query.param })
Maintenant, y a-t-il un moyen prédéfini que je peux nécessitent le paramètre qui renvoie une erreur de requête à / ressource
sans ?param=ABC
.
3 Réponses :
Dans express, la requête est automatiquement analysée et placée dans l'objet req.query
, pas dans l'objet req.param
.
Vous pouvez donc y accéder comme ceci :
const parameter = req.query.parameter;
lire req .query sur les documents expressjs.
Il n'y a pas de méthode prédéfinie pour. Vous pouvez choisir de le vérifier vous-même dans la fonction de rappel:
if (!req.query.parameter) { res.send('parameter is missing'); }
ou d'utiliser un middleware de routeur qui servirait le même objectif
Vous pouvez utiliser req.query pour obtenir le paramètre de requête et utilisez la fonction de rappel next
pour lancer une erreur comme
app.get('/ressource', function (req, res, next) { if(!req.query.param) { const err = new Error('Required query params missing'); err.status = 400; next(err); } // continue const parameter = req.body.param })
Il est important de noter que la condition ! Req.query.param
sera évaluée à true pour toutes les valeurs falsey. c'est-à-dire si req.query.param
est false
, null
, NaN
, 0
, ""
(chaîne vide) et indéfini
.