2016-01-23 112 views
2

说我想排除或包括布局参数到我的路线,但我有超过50条路线,我必须这样做到每一个res.render。自动传递参数res.render nodejs

if(req.headers['something']){ 
    res.render('index',{'layout':false}) 
}else{ 
    res.render('index') 
} 

当我必须通过其他参数的某些路线时,这是一种痛苦。有什么办法可以使用中间件来解决这个问题吗?

router.use(function(req,res,next){ 
    console.log(req.headers['something']); 
    // if true auto add layout object to every single res.render() 
    next(); 
}); 

回答

0

您可以使用res.locals变量来使所有模板

router.use(function(req, res, next){ 
    if (req.headers['something']) { 
     res.locals.layout = false; 
    } 
    next(); 
}); 
+0

这一切layout可用?哇.. –

+0

它应该是,'router.use'捕获所有请求,并添加到'res.locals'应该使所有常用的模板引擎等变量可用。 – adeneo

+0

@adeno,工作就像一个魅力! TQ非常! –