我正在为Node.js开发一个CMS系统,我对那些Node.js Pro的快速提问
我在这些模块中创建模块并需要模块,但是如果我已经将这个模块包含在父模块中,我可以访问那些必需的模块吗?
例如:
main.js
var fs = require('fs');
var sc = require('second.js');
second.js
var fs = require('fs'); // Is there any way to use the parent modules fs object?
我似乎在某些子模块中包含相同的模块,如果可能的话,不要这样做。
谢谢!
答案 0 :(得分:11)
如果您来到这里寻找一种从当前模块获取父模块的简单方法,这是一种方法:
var parent = module.parent.exports;
模块对象存储了相当多的有用信息,包括对加载它的父模块的引用。你也可以这样做:
var parent = module.require( module.parent.id );
答案 1 :(得分:6)
它应该无关紧要,因为Node在首次包含时会缓存模块(即需要模块的副作用将不会再次执行)。您可以通过篡改require.cache
来强制清除此缓存(从而重新执行所述副作用)。