Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数是否可以访问从何处调用它的整个范围_Javascript_Node.js - Fatal编程技术网

Javascript 函数是否可以访问从何处调用它的整个范围

Javascript 函数是否可以访问从何处调用它的整个范围,javascript,node.js,Javascript,Node.js,在nodejs路由器中,我做了很多关于会话的事情。在Ruby on Rails中,我可以把它带到自己的类中,比如session\u helper,然后在route controller中,我只会说这样的话include sessions\u helper,然后突然它可以访问类中当前可用的所有数据,然后我就可以执行session.renew 现在我看到的唯一方法是创建一个函数,然后在路由器中将req&res作为参数传递给它 是否有一种方法可以简单地导入类,然后开始使用它的方法,这要求它们能够访问此

在nodejs路由器中,我做了很多关于会话的事情。在Ruby on Rails中,我可以把它带到自己的类中,比如
session\u helper
,然后在route controller中,我只会说这样的话
include sessions\u helper
,然后突然它可以访问类中当前可用的所有数据,然后我就可以执行
session.renew

现在我看到的唯一方法是创建一个函数,然后在路由器中将req&res作为参数传递给它


是否有一种方法可以简单地导入类,然后开始使用它的方法,这要求它们能够访问此作用域。

在具有常规会话功能的nodejs中,当前请求的会话将位于
req.session
中。由于对请求进行操作的所有代码都来自对
req
对象具有访问权限的请求处理程序,因此您可以简单地将
req
req.session
传递给希望对属于当前请求的会话进行操作的任何代码。这就是nodejs中通常做的事情

“导入类,然后开始使用其方法”的确切含义尚不清楚。如果要创建在会话上运行的类,只需创建一些中间件,例如:

app.use((req, res, next) => {
    req.mySessionObject = new mySession(req.session);
    next();
});
然后,
req.mySessionObject
将是您的会话对象(使用当前请求的适当会话初始化)在所有请求中,您只需访问
req.mySessionObject
任何位置以及您在该对象上创建的任何方法。您仍然需要将
req
req.mySessionObject
传递给希望使用您的会话对象或在路由处理程序范围内声明该函数的任何函数,然后您可以随时直接访问
req
对象


如果这还不包括您试图描述的内容,那么请向我们展示一个代码示例,说明您希望能够执行的操作。

现在我正在执行类似的操作:
session.validateCode(…参数);
然后在那里我可以访问res、req、next等。但是在Rails中,我可以包括一个实用程序类,它会向该类添加方法,然后我可以从我的methods@MuhammadUmer-我不明白你想做什么。暂时忘记rails(我不了解rails,所以它对我一点帮助都没有)。请只描述您试图完成的内容(而不是您试图如何完成)。我已经描述了如果您愿意,您可以如何拥有自己的会话方法。不确定您还想要什么。