如何在不依赖其缓存系统的情况下在NodeJS中创建True Singleton

时间:2019-04-25 11:03:13

标签: javascript node.js

有时确实需要单例,并且Node的缓存系统不可靠。甚至官方文档也提到了它:

  

根据已解析的文件名缓存模块。由于模块可能会根据调用模块的位置(从node_modules文件夹加载)而解析为不同的文件名,因此,不能保证require('foo')始终返回完全相同的对象(如果它将解析为不同的文件)

来源:https://nodejs.org/api/modules.html#modules_module_caching_caveats


如何在不依赖Node缓存的情况下创建Singleton?甚至有可能吗?

1 个答案:

答案 0 :(得分:1)

您误会了文档。这意味着如果您的文件结构是:

 /foo.js
 /bar.js
 /sub/foo.js
 /sub/bar.js

然后,require("foo")文件中的bar.js将导入不同的模块(/foo.js/sub/foo.js)。

NodeJS的缓存系统 是可靠的。