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 .