Tommz
Tommz

Reputation: 3453

How to call different router based on some value?

I had my routes being included like this until now:

router.use('/groups', require('./routes/system/groups'));

Is it possible to put function on the second parameter and to make something like this:

router.use('/sustav/groups', function(req, res){
        switch (req.user.role){ // role I have in user already

        case "admin": {
            return require('./routes/system/admin/groups');
        }

        case "user": {
            return require('./routes/system/user/groups');
        }

    }
});

Like this I would be able to separate controllers depending user role.

Upvotes: 0

Views: 32

Answers (1)

Jordonias
Jordonias

Reputation: 5848

app.use('/sustav/groups', require('./routes/system/admin/groups'));
app.use('/sustav/groups', require('./routes/system/user/groups'));

./routes/system/admin/groups

...
if(req.user.role != 'admin') {
  return next();
}
...

./routes/system/user/groups

...
if(req.user.role != 'user') {
  return next();
}
...

Upvotes: 1

Related Questions