将控制器变量传递给Express / Node.js中的视图

时间:2016-01-12 02:23:59

标签: javascript node.js express

第一种方法

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

第二种方法

res.locals.people = people;
res.render('index');

我看到有两种方法可以将变量传递给查看,上面的方法有什么不同?

1 个答案:

答案 0 :(得分:1)

我认为传递变量到渲染模板它们是相同的,但是有区别。 您可以使用res.locals从serval中间件传递变量。

<强> res.locals

  

包含作用域的响应局部变量的对象   请求,因此仅适用于在期间呈现的视图   请求/响应周期(如果有)。否则,这个属性是   与app.locals相同。

     

此属性对于公开请求级别信息非常有用,例如   请求路径名,经过身份验证的用户,用户设置等。

app.use(function(req, res, next){
  res.locals.user = req.user;
  res.locals.authenticated = ! req.user.anonymous;
  next();
}); 

从此代码中,您将req.user传递给下一个中间件。