我正在尝试创建一个在网络上工作的模块,但也会缓存最近的结果,以减少它访问的资源的利用率。我的想法只是创建一个模块,并在需要的地方需要它。但是,在较旧版本的节点中,显然认为这不起作用,因为require
仅在它解析为相同路径时才缓存其参数。
对于在node-modules
下创建扁平结构的较新版本的节点,我认为这不再是真的。但是,我仍然看到最近有关单身人士的文章,主张通过different method创建一个单身人士:
如果你想创造一个像单身人士一样的东西,你 通常可能会在您的模块中执行类似的操作:
var HelloWorld = (function () { this.greeting = “Hello, World”; return this; })(); module.exports = HelloWorld;
这意味着如果你加载了 模块在您的应用程序中多次,即使在不同的文件中, HelloWorld只会被调用一次;以及HelloWorld的所有实例 将指向同一个对象。
首先,我不明白为什么会出现这种情况:如果你从两个不同的目录加载这个模块,为什么HellowWorld只会被调用一次?是否会从加载的模块的每个不同实例调用一次?
其次,如果使用一个使用扁平安装结构的足够新版本的npm,这样的话甚至是必要的吗?