Express.js中间件 – 将项目添加到响应对象模型
我正在玩Expressjs,并试图从默认模板中提取页面标题到中间件,而不是每次传递到视图的模型。
默认的index.jade模板
h1= title p Welcome to the #{title}
来自模板的默认路由
exports.index = function(req, res){ res.render('index', { title: "Express" }); };
我试图以下,但从Express表示错误title
是不确定的,当我这样做。
module.exports = function(req, res, next){ res.title = 'Express'; next(); }
这显然是一个微不足道的例子,但是这也是我想弄明白的,因为在每条路线之后,我可能会想要在响应的模型中注入一些东西。 我只是不知道该怎么做。
谢谢
你必须使用默认助手。 阅读文档 。 这是一个简单的片段:
app.helpers({ title: 'Express' }); /* Now JADE sees your variable title without explicitly defining it in every view. */
也请看文档中的dynamic助手 。 这些可以链接到req
和res
variables(正常的帮助者不依赖于请求/响应)。