Node.js访问父模块

Qui*_*ike 3 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?
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

And*_*ndy 11

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

var parent = module.parent.exports;
Run Code Online (Sandbox Code Playgroud)

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

var parent = module.require( module.parent.id );
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`module.parent`是指*first*加载模块的父级,而不是该特定实例中的父级. (10认同)

Ste*_*ang 6

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