Express中的渲染特殊参数

时间:2015-11-06 12:13:01

标签: node.js express pug

我使用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()})

怎么做?

1 个答案:

答案 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