在我的Express应用程序中,我可以设置
app.locals
并直接在我的模板中使用它们(使用express-handlebars渲染)。但是,当我在中间件中设置res.locals
时,它们除非我传递它们否则无法使用。这样做有错吗?app.locals.foo = "foo";
app.use(function(req, res, next) {
res.locals.bar = "bar";
next();
});
模板
{{foo}} {{bar}}
测试1
app.get("/", function(req, res) {
app.render("template.html", {}, function(error, html) {
res.send(html);
});
});
结果
foo
测试 2
app.get("/", function(req, res) {
app.render("template.html", {bar: res.locals.bar}, function(error, html) {
res.send(html);
});
});
结果
foo bar
app.router
在4.x版本中已经被废弃了。 - David Jones