Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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,节点是否有状态 如果我想建立一个索引来保存在内存中,它会在不同的连接中持续存在吗?我只是想知道这是否可能。例如,我们有一个java服务器,它在内存中维护一个hashmap以加速某些搜索查询。当事情发生时,它会修改它。在Node中是否可以这样做 谢谢 是的,您可以在进程的生命周期内将状态保留在内存中。有可用于哈希映射、LRU缓存和其他常用数据结构的库。绝对可以。下面是一个非常简单的示例,说明了我认为您正在寻找的内容(修改了中的示例代码): 请注意,除了最短暂的数据类型外,通常不会执行此类操作。如果

节点是否有状态

如果我想建立一个索引来保存在内存中,它会在不同的连接中持续存在吗?我只是想知道这是否可能。例如,我们有一个java服务器,它在内存中维护一个hashmap以加速某些搜索查询。当事情发生时,它会修改它。在Node中是否可以这样做


谢谢

是的,您可以在进程的生命周期内将状态保留在内存中。有可用于哈希映射、LRU缓存和其他常用数据结构的库。

绝对可以。下面是一个非常简单的示例,说明了我认为您正在寻找的内容(修改了中的示例代码):


请注意,除了最短暂的数据类型外,通常不会执行此类操作。如果您需要一些更持久的东西,请考虑使用类似于

的东西,您可以在节点中使用与静态变量等效的变量。第一次需要文件时,节点将运行该文件中的代码。这意味着,如果在范围级别上定义的变量等于或高于
module.exports
,则始终可以从内部闭包访问这些变量

(function(){
  var aStaticVariable = 123;

  module.exports = function() {
    // an instantiable object

  }
})();
您还有全局变量:

global.aGlobalVar = "foo";

当然这是可能的。是的,这可以通过Node轻松完成。-似乎模块被缓存了?我想指出的是,虽然您可以构建这样的服务器,但您不应该这样做,除非您确定永远不需要将其扩展到多个服务器。感谢您指出这一点。我想如果它扩展到一个服务器集群,那么索引应该统一到其他服务器可以访问的地方,这是有道理的。
global.aGlobalVar = "foo";