我正在使用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();
}
这显然是一个微不足道的例子,但它也是我想要解决的问题,因为可能会有一段时间我希望在每条路线之后将内容注入到响应的模型中。我只是无法弄清楚如何做到这一点。
由于
答案 0 :(得分:2)
您必须使用默认帮助程序。阅读the documentation。这是一个简单的片段:
app.helpers({
title: 'Express'
});
/* Now JADE sees your variable title
without explicitly defining it
in every view. */
另请参阅文档中的动态帮助程序。这些变量可以链接到req
和res
变量(普通助手不依赖于请求/响应)。