gpt4 book ai didi

javascript - 在没有请求变量的情况下在 Node js/express 中检索 session 信息

转载 作者:行者123 更新时间:2023-11-29 23:27:26 24 4
gpt4 key购买 nike

如果我使用 express-session session 变量在 req.session 下变得可用,例如:

 app.get('/', function(req, res) {
req.session.myVar = 1;
}

但是,如果我想检索深深嵌套在我的应用程序中但没有可用的 req 变量的当前请求的 session 怎么办?

除了在整个框架中将 req 变量作为参数传递之外,还有其他方法吗?

最佳答案

Is there another way besides passing in the req variable as a parameter all across the framework?

不,不是真的。 node.js 服务器(使用任何异步操作)可以同时处理多个请求。因此,您想要访问的任何特定于请求的数据都必须来自与此特定请求相关联的对象,并且仅来自此特定请求。你不能把它放在全局变量中,因为它们可以从不同的请求中混合。您有多种选择,但最终您必须通过您的函数将数据传递到需要它的任何地方——这里没有捷径。这里有几个选项:

  1. 将数据放在 req 上,并通过您的代码将 req 传递给需要数据的函数。
  2. 传递数据本身(如果您只需要一次数据,则无需传递整个 req 对象。
  3. 创建一个特定于此特定请求的新对象(不与其他请求共享或对其他请求不可用)并将所需数据作为该对象的属性,然后将该对象传递给所需代码。在 OO 世界中,您通常可以将多个函数作为方法放在一个共享对象上,然后数据自动可供所有这些方法使用,因此您不必显式传递它。
  4. 使用共享作用域和闭包,以便任何需要访问数据的函数都可以直接从父作用域获取数据。

关于javascript - 在没有请求变量的情况下在 Node js/express 中检索 session 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48594136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com