nodejs将值从控制器传递给视图

时间:2015-10-25 08:59:18

标签: node.js pug

res.render('index', { title: 'Express' });

上面的行只表示index.jade(view)可以使用#{title}来获取Express'。

res.locals.title = 'Express'做同样的事吗?这两者之间的区别是什么?

1 个答案:

答案 0 :(得分:1)

是的,两者都做同样的事情,但差别很小。

res.locals作用于请求,因此仅对在请求/响应周期中呈现的视图(如果有)提供。

它们在渲染中将是“全局的”,因此您无需预先结束任何内容即可使用它们。 此属性对于公开请求级别信息(如请求路径名称,经过身份验证的用户,用户设置等)非常有用。

//Example, It will attach user info with every response.
app.use(function(req, res, next){
  res.locals.user = req.user;
  next();
});
res.render中的

(view [,locals] [,callback]) locals是一个对象,其属性仅为该视图定义局部变量。