最近几天有些不舒服,都没怎么开工,今天来补篇博客~
app.locals
app.locals是一个JS 对象,可以被认为是全局变量,也就是global。一旦进行了设置,app.locals属性在应用程序的整个生命周期一直存在。在模板引擎中,我们用app.locals传递希望放在每个单页上的东西。
res.locals属性只在request的生命周期内才有效,res只响应特定的response,例如:1
2
3app.get('/abc',function(req, res){
res.locals.name = req.name;
});
可以如下顺序(加粗的表示是人为操作的):
- app被创建了 (var app = express())
- app.locals被创建
- request到达
- 特定的res.locals被创建响应相应的request
- 你向res.locals传入了数据,比如res.locals.name = “daniel”
- 你通过res.render()返回了数据给模板
- res.local被垃圾回收
- app.locals仍然存在(因为一直伴随整个生命周期)
来自nodejs in action一书,用一个比较容易理解的狂徒介绍了二者的不同,可以帮助我们更好的理解。