Node.js访问父模块

时间:2011-12-05 07:08:24

标签: node.js

我正在为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?

我似乎在某些子模块中包含相同的模块,如果可能的话,不要这样做。

谢谢!

2 个答案:

答案 0 :(得分:11)

如果您来到这里寻找一种从当前模块获取父模块的简单方法,这是一种方法:

var parent = module.parent.exports;

模块对象存储了相当多的有用信息,包括对加载它的父模块的引用。你也可以这样做:

var parent = module.require( module.parent.id );

答案 1 :(得分:6)

它应该无关紧要,因为Node在首次包含时会缓存模块(即需要模块的副作用将不会再次执行)。您可以通过篡改require.cache来强制清除此缓存(从而重新执行所述副作用)。