将控制器variables传递给Express / Node.js中的视图
第一种方法
res.render('index',{people:people});
第二种方法
res.locals.people = people; res.render('index');
我看到有2种方式来传递variables来查看,以上方法有什么不同的btw?
我认为他们是相同的传递variables渲染模板,但有一个区别。 您可以使用res.locals
从中间件中传递variables。
res.locals
包含作用域为请求的响应局部variables的对象,因此仅可用于在请求/响应周期(如果有)期间呈现的视图。 否则,这个属性和app.locals是一样的。
此属性对于公开请求级别信息(如请求path名称,已validation用户,用户设置等)非常有用。
app.use(function(req, res, next){ res.locals.user = req.user; res.locals.authenticated = ! req.user.anonymous; next(); });
从这个代码中,你将req.user
传递给下一个中间件。