微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 我可以直接在模板中使用app.locals,但不能使用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("/",{bar: res.locals.bar},html) {
    res.send(html);
  });
});

结果

foo bar

解决方法

res.locals在res.render中可用.我怀疑你错误调用app.render,应该调用res.render.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐