当前位置: 首页 > 面试题库 >

app.locals和res.locals生命周期

沃学
2023-03-14
问题内容

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

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


问题答案:

您可以考虑app.locals是全球性的。您可能想存储在其中的一些示例app.locals:URL帮助器,应用程序级常量。您应该在此处放置任何您想在每个视图中访问的内容。

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

生命周期如下所示,您的职责 是大胆的 (其他所有事情都是通过快递为您完成的):

  1. 应用已创建(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继续存在


 类似资料:
  • 我对铁锈寿命的学习过程如下(基于铁锈书): 我想注释,当引用后面的值超出范围时 通常(并不总是!请参阅. data部分,即'静态')值位于块中 我们注释像这样的块,例如结构字段像 。 在哪一点上我的理解是错误的?提前感谢你对我的宽容。 免责声明:

  • 问题内容: 有人问过类似的问题,但我的问题是,如果我想传播通过不同路由中间件获得的中间结果,什么是最好的方法? 我认为我可以通过使用 req .locals 通过不同的中间件获得相同的数据传播。同样,请求和响应对象似乎都具有在请求开始时初始化为空对象的locals属性。 另外,也可以设置res.mydata或req.mydata属性吗? 从理论上讲,app.locals也可以用于通过不同的中间件传

  • 注:本文档提供的生命周期指的是 Universal App 的生命周期,它依赖 rax-app 提供的 runApp方法。 App 级生命周期 launch  在 App 启动时触发 使用生命周期 你可以使用 rax-app 提供的 useAppLaunch 来注册 App 级别的生命周期。 示例: import { useAppLaunch } from 'rax-app'; useAppLa

  • 我们大致为WebAPplication设计了4个生命周期: 请求初始化其实就是从URL中解析提取出{module}, {action}, {method}; 然后再根据{module}, {action}, {method}找到对应的Controller文件; 然后再调用对应的{method},完了之后再发送响应。当然响应的过程中肯定是要顺带着解析下模板标签啦。 恩,这就完了,貌似感觉很简单啊。

  • 如下图. 可以看出,基本周期是: created mounted updated (update 可以理解成人肉手动操作触发) destroyed 上面步骤中的 1,3,4都是自动触发。 每个步骤都有对应的 beforeXyz方法 所以, 我们一般使用mounted 作为页面初始化时执行的方法

  • 概览 组件的生命周期分为三个阶段:挂载、渲染、卸载,下图展示了解组件在整个生命周期中所涉及到的方法调用、原型方法调用和状态变化。 挂载阶段 从组件实例被创建再到被插入根组件树中,所经历的操作如下: 初始化组件实例。 根据组件类型绑定对应的原型。 调用 proto->init() 原型方法。 标记组件需要刷新全部样式。 因父组件变为另外一个组件,触发 link 事件。 更新阶段 当组件被插入到根组件