app.locals和res.locals生命周期
我真的很困惑的app.locals
和res.locals
因为我不知道什么时候应该使用它们以及如何? 其实我想知道app.locals
和res.locals
生命周期。
例如,我应该在哪里保存我的用户(authentication用户)的详细信息(用户名,angular色等)? 在app.locals
或res.locals
?
你可以考虑app.locals
是全球性的。 您可能想要在app.locals
存储的一些示例:URL助手,应用程序级常量。 你应该把任何东西放在你想要的每一个视图中。
res.locals
仅存储特定响应(响应特定请求)的数据。 例如,GET /东西会创build一个新的res.locals,通过所有响应“/ something”的中间件传递。 这里的适当的信息是从你的问题authentication的用户细节。
生命周期看起来像这样,你的责任是大胆的 (其他的一切都是通过快递完成的):
- 应用程序被创build(var app = express();)
- app.locals被创build
- 请求到达
- res.locals是为该请求创build的
- 你添加的东西res.locals像用户angular色(res.locals.role ='admin';)
- 你服务于请求的响应(res.render('some / view');)
- 那个请求的res.locals是垃圾收集,不见了
- 只要应用程序存在,app.locals就会继续存在