【问题标题】:Express routes and middleware快速路由和中间件
【发布时间】:2018-07-15 20:33:27
【问题描述】:

我正在使用角色授权 (connect-roles),并尝试为每条路由添加多个角色。这是使用 express 和 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);

【问题讨论】:

    标签: javascript express mongoose routes authorization


    【解决方案1】:

    只需将requestresponse 传递给它:

    adminController.showVipView(req, res);
    

    它可能还需要next 回调,那么你也应该将它传递给它...

    顺便说一句,你的 if 语句也不会工作,因为它返回一个中间件。可能会这样做:

    user.can('vip')(req, res, function(){
      adminController.showVipView(req, res);
    });
    

    【讨论】:

      猜你喜欢
      • 2019-02-18
      • 2015-01-22
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2018-01-03
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多