1

我正在使用 Expressjs 并尝试将页面标题从默认模板提取到中间件,而不是每次都传递到视图的模型中。

默认 index.jade 模板

h1= title

p Welcome to the #{title}

来自模板的默认路由

exports.index = function(req, res){
  res.render('index', { title: "Express" });
};

我尝试了以下操作,但是title当我执行此操作时,Express 说是未定义的错误。

module.exports = function(req, res, next){
    res.title = 'Express';
    next();
}

这显然是一个微不足道的例子,但这也是我试图弄清楚的事情,因为可能会有一段时间我想在每条路线之后将东西注入响应的模型中。我只是不知道该怎么做。

谢谢

4

1 回答 1

2

您必须使用默认助手。阅读文档。这是一个简单的片段:

app.helpers({
    title: 'Express'
});
/* Now JADE sees your variable title
   without explicitly defining it
   in every view. */

还可以查看文档中的动态助手。这些可以链接到req变量res(普通助手不依赖于请求/响应)。

于 2012-06-27T15:35:34.763 回答