module.require有什么用途?

module.require的文档指出:

module.require方法提供了一种加载模块的方法,就好像从原始模块中调用require()

文档对于这个目的是非常不透明的。 何时,如何,为什么我需要使用它?

module.require主要由Node.js的模块系统本身使用,特别是require()

 console.log(require.toString()); // function require(path) { // return self.require(path); // } 

在这种情况下, self指的是当前的module对象 。 但是,您可以像使用module.require()一样使用module.require() require()

 console.log(require('./foo') === module.require('./foo')); // true 

而且,如果您从另一个文件(例如require.main引用module对象,则可以使用它来指定相对于该模块的path。

 $ node foo.js 

 // foo.js var bar = require('./src/bar'); 
 // src/bar.js var baz = require.main.require('./lib/baz'); // relative to `foo.js` 

它提供了一个很好的方式来保持你的代码清洁和模块化。 基本上,你会把你的方法写成对象并导出它们,然后通过要求将它们加载到另一个文件中。