app.locals和res.locals生命周期

Afs*_*ani 22 node.js express

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

例如,我应该在哪里保存我的用户(经过身份验证的用户)详细信息(用户名,角色等)?在app.localsres.locals

hun*_*tis 61

你可以认为app.locals是全球性的.您可能希望存储的一些示例app.locals:URL帮助程序,应用程序级常量.您应该在每个视图中放置您想要访问的任何内容.

res.locals仅存储特定响应的数据(响应特定请求).例如,GET/something将创建一个新的res.locals,它将通过响应'/ something'的所有中间件传递.这里的适当信息是来自您问题的经过身份验证的用户详细信息.

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

  1. app已创建(var app = express();)
  2. app.locals已创建
  3. 请求到达
  4. 为该请求创建res.locals
  5. 你向res.locals添加东西,比如用户角色(res.locals.role ='admin';)
  6. 你服务于对请求的响应(res.render('some/view');)
  7. 该请求的res.locals被垃圾收集,消失了
  8. 只要应用程序存在,app.locals就会继续存在