当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 我可以直接在模板中使用app.locals,但不能使用res.locals

来源:互联网 收集:自由互联 发布时间:2021-06-16
在我的Express应用程序中,我可以设置app.locals并直接在我的模板中使用它们(使用 express-handlebars渲染).但是,当我在中间件中设置res.locals时,除非我将它们传入,否则它们不可用.我做错了什么
在我的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
res.locals在res.render中可用.我怀疑你错误地调用app.render,应该调用res.render.
网友评论