javascript - api调用者可以访问res.locals吗?
问题描述
目前正在开发一个应用程序,在该应用程序中我在中间件中进行身份验证并设置用户的身份验证属性(将在路由中使用)。这些身份验证属性存储在res.locals.user中。
我想知道 api 调用者是否可以在请求发回后访问和记录 res.locals 变量。从我读过的内容来看,情况似乎并非如此,但我想确定一下。
我已经看到答案是指请求/响应生命周期,因此对此的任何资源也将不胜感激。
谢谢
解决方案
res.locals.user
对于您的服务器而言是本地的,对于处理该特定请求的代码而言是本地的。传入 http 请求的发送者无权访问该数据。
如果您想与传入 http 请求的发件人共享其中的任何内容,那么您可以编写代码以在您作为 http 响应发回的响应中包含某些内容,或者如果您使用的是 html 模板引擎,那么您可以对模板进行编码以包含您想要的任何内容res.locals.user
。
服务器端变量仅在服务器上可用,除非您的代码专门将它们发送回客户端。并且,req
orres
对象中的内容仅在处理该特定请求时可用。一旦请求处理结束并且您处理请求的代码已完成,那么这些特定对象将被垃圾收集,并且无法从其他请求中访问它们req
。res
推荐阅读
- python - IBM Watson Visual Recognition 上自定义模型的错误分类
- shell - 使用 shell 脚本命令从文本中提取 UUID 字符串
- react-native - `useAuthRequest` 总是返回 `dismiss`
- html - 使用 window.print() 时创建封面
- javascript - Document.querySelector 返回 NULL 值 - 脚本位于页面底部
- swift - MapBox 注释标题在 Swift 中居中
- notepad++ - 制作大括号时如何使notepad ++转到下一行
- dpdk - 如何安装 DPDK 内核模块?
- sql-server - 仅当字段在更新之前为 false 时 SQL Server 才会触发
- java - 使用 Lombok 将 JSON 数组映射到 POJO