APP

如何理解Nodejs的模块机制

Nodejs遵循的是CommonJS规范,当我们require('moduleA')时,模块是怎么通过名字或者路径获取到模块的呢?

如何理解Nodejs的模块机制?

已邀请:

1.模块上下文提供require()方法来引入外部模块,看似简单的require函数, 其实内部做了大量工作。示例代码如下://test.js

//引入一个模块到当前上下文中
const math = require('math');
math.add(1, 2);

2 模块定义
模块上下文提供了exports对象用于导入导出当前模块的方法或者变量,并且它是唯一的导出出口。模块中存在一个module对象,它代表模块自身,exports是module的属性。一个文件就是一个模块,将方法作为属性挂载在exports上就可以定义导出的方式://math.js

exports.add = function () {
   let sum = 0, i = 0, args = arguments, l = args.length;
   while(i < l) {
       sum += args[i++];
  }
   return sum;
}

3 模块标识
模块标识就是传递给require()方法的参数,它必须是符合小驼峰命名的字符串,或者以.、..开头的相对路径或者绝对路径,可以没有文件后缀名.js.


要回复问题请先登录注册