在我的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 barres.locals在res.render中可用.我怀疑你错误地调用app.render,应该调用res.render.