1. ホーム
  2. node.js

[解決済み] パラメータを受け取るexpressjsミドルウェアの作成

2022-06-10 16:23:36

質問

パラメータを受け取ることができるミドルウェアを作成しようとしています。どのようにすればよいのでしょうか?

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

})

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

   next();
}

どのように解決するのですか?

function HasRole(role) {
  return function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  }
}

また、同じ関数のコピーを複数作らないようにしたいです。

function HasRole(role) {
  return HasRole[role] || (HasRole[role] = function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  })
}