module.require有什么用途?

3

module.require的文档说明如下:

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

这份文档对于其目的真的很难理解。我什么时候、如何以及为什么需要使用它呢?

2个回答

3

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

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

在这种情况下,self指的是当前的module对象。但是,你可以像使用require()一样使用module.require()
console.log(require('./foo') === module.require('./foo')); // true

而且,如果你在另一个文件中拥有对module对象的引用,比如来自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`


你能否看一下这个链接:http://stackoverflow.com/questions/27624017/why-require-main-require-resolve-is-undefined?先谢谢了。 - laconbass

-1

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


这是关于 require() 而非 module.require() 的描述,两者有不同的目的(我仍然不太清楚)。 - user1944491

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接