的文档module.require
指出:
该
module.require
方法提供了一种加载模块的方法,就像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()
一样使用require()
:
console.log(require('./foo') === module.require('./foo')); // true
而且,如果您module
从另一个文件(例如 from )中引用了该对象,require.main
则可以使用它来指定相对于该模块的路径。
$ node foo.js
// foo.js
var bar = require('./src/bar');
// src/bar.js
var baz = require.main.require('./lib/baz'); // relative to `foo.js`
它提供了一种很好的方式来保持你的代码干净和模块化。基本上,您可以将方法编写为对象并导出它们,然后可以通过要求它们将它们快速加载到另一个文件中。