3

的文档module.require指出:

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

该文档对这样做的目的确实不透明。我何时、如何以及为什么需要使用它?

4

2 回答 2

3

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`
于 2013-09-19T02:30:33.327 回答
-1

它提供了一种很好的方式来保持你的代码干净和模块化。基本上,您可以将方法编写为对象并导出它们,然后可以通过要求它们将它们快速加载到另一个文件中。

于 2013-09-23T21:53:25.297 回答