仅针对Express中的某些路由运行中间件的模式

时间:2015-08-12 13:44:30

标签: javascript node.js express connect

配置我的中间件以使其仅针对某些端点运行的最佳方法是什么?

最好是将中间件逐个添加到每个端点还是有更好的方法来创建可以处理它的配置?

2 个答案:

答案 0 :(得分:2)

您可以根据需要在路线中添加任意数量的功能:

例如,对于特定路由使用bodyParser中间件可以这样做:

app.get('/page/:id?/:page?', bodyParser.urlencoded({ extended: false, limit: '50mb' }), function (req, res) {
     .....
}); 

在中间件文档中阅读更多内容: http://expressjs.com/guide/using-middleware.html#middleware.router

答案 1 :(得分:0)

最好的方法是使用快速组路由找到它here,然后为exmple创建一个中间件`

var loginMiddelware = function(req,res,next){
    if(req.session.user){
        next();
    }else{
        res.redirect('/login');
    }
}

这个middelware在路由组中使用,如

app.group("/dashboard",(router) => {
    router.use(loginMiddelware);
    router.get('/', dashboardController.index); //url is /dashboard/
    router.get('/profile', dashboardController.profile); //url is /dashboard/profile

});

希望它适合你。