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