Javascript 在node.js中使用文件范围变量
初学者问题 在node.js中的服务器端运行: 如果我使用由export.function()设置的文件范围(甚至全局)变量,其中导出的函数通过ajax从客户端调用,如果多个请求来自不同的客户端,该变量现在是否容易出现意外结果Javascript 在node.js中使用文件范围变量,javascript,node.js,Javascript,Node.js,初学者问题 在node.js中的服务器端运行: 如果我使用由export.function()设置的文件范围(甚至全局)变量,其中导出的函数通过ajax从客户端调用,如果多个请求来自不同的客户端,该变量现在是否容易出现意外结果 也就是说,我是否需要设置一个数组,以便每次调用export.function()时,它都会为特定的ajax请求添加一个新的文件范围实例?或者这是由node.js神奇地处理的,在node.js中,每个ajax请求都有自己的服务器实例?请求将共享相同的实例,因此您需要对此加以
也就是说,我是否需要设置一个数组,以便每次调用export.function()时,它都会为特定的ajax请求添加一个新的文件范围实例?或者这是由node.js神奇地处理的,在node.js中,每个ajax请求都有自己的服务器实例?请求将共享相同的实例,因此您需要对此加以防范。但是请注意,同步代码块将在执行切换到处理另一个请求之前完全执行,因此这简化了您需要执行的“保护”操作。谢谢!我在异步POST/响应中使用这些全局变量,所以听起来似乎需要解决它。为了澄清这一点,解决这个问题的标准方法似乎是将全局变量附加到req。例如:exports.server_route(req,res){req.globals={g1:0,g2:“init”,g3:0};somefuncwithpassedcallback(函数(req,res){//通过req.globals.g1等访问全局);}函数somefuncwithpassedcallback(callback){callback(req,res);}然后始终调用参数列表中的所有内容,包括req和res(req用于访问请求和附加的全局变量,res用于在失败时生成响应,或者调用嵌套在某个回调中的正常响应)。