app.locals和res.locals生命周期

我真的很困惑的app.localsres.locals因为我不知道什么时候应该使用它们以及如何? 其实我想知道app.localsres.locals生命周期。

例如,我应该在哪里保存我的用户(authentication用户)的详细信息(用户名,angular色等)? 在app.localsres.locals

你可以考虑app.locals是全球性的。 您可能想要在app.locals存储的一些示例:URL助手,应用程序级常量。 你应该把任何东西放在你想要的每一个视图中。

res.locals仅存储特定响应(响应特定请求)的数据。 例如,GET /东西会创build一个新的res.locals,通过所有响应“/ something”的中间件传递。 这里的适当的信息是从你的问题authentication的用户细节。

生命周期看起来像这样,你的责任是大胆的 (其他的一切都是通过快递完成的):

  1. 应用程序被创build(var app = express();)
  2. app.locals被创build
  3. 请求到达
  4. res.locals是为该请求创build的
  5. 你添加的东西res.locals像用户angular色(res.locals.role ='admin';)
  6. 你服务于请求的响应(res.render('some / view');)
  7. 那个请求的res.locals是垃圾收集,不见了
  8. 只要应用程序存在,app.locals就会继续存在