我使用Jade渲染模板。它看起来像这样:
res.render('template_name', {var1: 'One', var2: 'Two'})
但是我需要每个渲染添加一个参数,这是函数的结果。例。我写了
res.render('template_name', {var1: 'One', var2: 'Two'})
但它看起来像
res.render('template_name', {var1: 'One', var2: 'Two', var3: func()})
怎么做?
答案 0 :(得分:1)
您必须在所有要访问的路由var3
之前添加中间件,如下所示;
function populateLocals(req, res, next){
res.locals.var3 = function() {
return "alalao";
};
next();
}
app.use(populateLocals);
您可以通过单独执行此操作,在路由的基础上向本地人添加特定值;
app.get('/', populateLocals, function(req, res, next) {
res.render('foo', {a: 1, b: 2});
});
app.get('/whatever', populateLocals, function(req, res, next) {
res.render('foo', {a: 1, b: 2});
});
另外,请查看this other question