首页 > 解决方案 > api调用者可以访问res.locals吗?

问题描述

目前正在开发一个应用程序,在该应用程序中我在中间件中进行身份验证并设置用户的身份验证属性(将在路由中使用)。这些身份验证属性存储在res.locals.user中。

我想知道 api 调用者是否可以在请求发回后访问和记录 res.locals 变量。从我读过的内容来看,情况似乎并非如此,但我想确定一下。

我已经看到答案是指请求/响应生命周期,因此对此的任何资源也将不胜感激。

谢谢

标签: javascriptnode.jsexpressresponse

解决方案


res.locals.user对于您的服务器而言是本地的,对于处理该特定请求的代码而言是本地的。传入 http 请求的发送者无权访问该数据。

如果您想与传入 http 请求的发件人共享其中的任何内容,那么您可以编写代码以在您作为 http 响应发回的响应中包含某些内容,或者如果您使用的是 html 模板引擎,那么您可以对模板进行编码以包含您想要的任何内容res.locals.user

服务器端变量仅在服务器上可用,除非您的代码专门将它们发送回客户端。并且,reqorres对象中的内容仅在处理该特定请求时可用。一旦请求处理结束并且您处理请求的代码已完成,那么这些特定对象将被垃圾收集,并且无法从其他请求中访问它们reqres


推荐阅读