我正在使用角色授权(connect-roles),并尝试为每个路由添加多个角色。这是使用快递和monogoose。这是我目前的代码:
router.get('/admin/:slug', function (req, res) {
if (user.can('vip')) {
adminController.showVipView // <-- this is what I need to work
} else {
// call a different view
}
});
没有if语句,这就是它通常的工作方式。这似乎是超级基本的表达,但我无法让它发挥作用。
router.get('/admin/:slug', user.can('vip'), adminController.showVipView);
答案 0 :(得分:1)
只需将request
和response
传递给它:
adminController.showVipView(req, res);
它可能还需要next
回调,那么你也应该将其传递给它......
顺便说一句,你的if语句不能正常工作,因为它返回一个中间件。可能会这样做:
user.can('vip')(req, res, function(){
adminController.showVipView(req, res);
});