1
votes

Express nécessite un paramètre de requête

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.


0 commentaires

3 Réponses :


0
votes

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.


0 commentaires

0
votes

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


0 commentaires

3
votes

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


1 commentaires

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 .