mean.js中的路由(如何包含中间件?)

时间:2014-09-03 16:39:55

标签: javascript node.js express meanjs

我试图在MEAN.js中包含一个中间件(passport-http-bearer),但它使用的路由语法与Express 4不同。

Express API sytnax是:

app.get('/', function(req, res){
  res.send('hello world');
});

在MEAN.js中,路由定义如下:

app.route('/articles')
    .get(articles.list)
    .post(users.requiresLogin, articles.create);

如何在MEAN.js路由器中包含中间件(在我的情况下,使用passport-http-bearer来检查令牌)?

http-bearer作为中间件的示例实现是:

app.get('/profile', 
  passport.authenticate('bearer', { session: false }),
  function(req, res) {
    res.json(req.user);
  });

我应该如何在MEAN.js中执行此操作?

1 个答案:

答案 0 :(得分:2)

对于那些在这里试图弄清楚如何做到这一点的人来说,这是如何做到的:

app.route('/articles')
    .get(passport.authenticate('bearer', { session: false }), articles.list)
    .post(passport.authenticate('bearer', { session: false }), articles.create);

或者为了让它看起来更漂亮,整个身份验证功能可以放在users.authorization.server.controller.js中并称为woith:

app.route('/articles')
    .get(users.requiresToken, articles.list)
    .post(users.requiresToken, articles.create);