145 votes

Création d'un middleware expressjs qui accepte des paramètres

J'essaie de créer un intergiciel qui peut accepter des paramètres. Comment cela peut-il être fait ?

exemple

app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){

})

HasRole = function(role, req, res, next){
   if(role != user.role){
      res.redirect('/NotInRole);
   }

   next();
}

2voto

Ricardo Alves Points 359

Puisque nous sommes en 2021, pourquoi ne pas utiliser une syntaxe ES6 ?... En utilisant NodeJS v14.16.1 l'exemple ci-dessous fonctionne comme un charme :-)

Avec les routeurs express

const someFunc = ({ option1, option2 }) =>
 router.get("/", (req, res, next) => {

 // code

 next();
});

module.exports = someFunc;

ou

const someFunc = ({ option1, option2 }) =>
     (req, res, next) => {

     // code

     next();
    };

 module.exports = someFunc;

... Alors appelez-le comme ça :

const someFunc = require('./middlewares/someFunc.js');
app.use(someFunc({option1: 'test', option2: false ));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X