【问题标题】:using file scope variables in node.js在 node.js 中使用文件范围变量
【发布时间】:2023-03-07 21:58:01
【问题描述】:

初学者问题

在服务器端运行,在 node.js 中:

如果我使用由 export.function() 设置的文件范围(甚至是全局)变量,其中导出的函数是从客户端通过 ajax 调用的,如果多个请求来自不同的客户端,则该变量是现在容易出现意想不到的结果?

即我是否需要设置一个数组,以便每次调用 export.function() 时都会为该特定 ajax 请求添加一个新的文件范围实例?或者这是否由 node.js 神奇地处理,其中每个 ajax 请求都有自己的服务器实例?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    请求将共享相同的实例,因此您需要防范这种情况。但是请注意,同步代码块将在执行切换以处理另一个请求之前完全执行,因此这简化了您需要做的“保护”。

    【讨论】:

    • 谢谢!我在异步帖子/响应中使用这些全局变量,所以听起来需要解决它。
    • 所以澄清一下,解决这个问题的标准方法似乎是将全局变量附加到 req.例如:exports.server_route(req, res) { req.globals={ g1:0, g2:"init", g3:0 }; somefuncwithpassedcallback( function ( req, res ) { // 通过 req.globals.g1 等访问全局变量 } ); } 函数 somefuncwithpassedcallback( 回调 ) { 回调( req, res ); } 然后总是调用包括参数列表中的 req 和 res 在内的所有内容(req 用于访问请求和附加的全局变量,res 用于在失败或嵌套在某些回调中的正常响应时生成响应)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多