我用jade运行express.js。现在我意识到每次都需要将用户对象发送给jade:
var renderObject = {
navigation: [{
url: "/",
title: "Home"
}],
user: user
}
res.render('MyTemplate', renderObject);
但是,我对项目非常深入,并且有许多调用res.render的路由。所以现在,像我一样懒惰,我开始研究是否有一种方法可以在实际调用渲染器之前插入渲染器。
伪代码:
app.beforeRendering(function(template,renderObject,next) {
renderObject.user = GLOBAL.myUserObject;
})
答案 0 :(得分:1)
您可以在res.locals
上设置要包含在所有渲染中的属性:
res.locals.nav = [{
url: "/",
title: "Home"
}];
res.locals.user = user;
或者可以一步替换整个对象:
res.locals = {
navigation: [{
url: "/",
title: "Home"
}],
user: user
};