我们都知道Nodejs遵循CommonJS规范。当我们require('moduleA')时,module是如何通过名称或者路径获取模块的呢?首先说一下模块引用、模块定义和模块标识这三个概念。1CommonJS规范1.1模块引用模块上下文提供了require()方法来导入外部模块。看似简单的require函数,其实内部做了很多工作。示例代码如下://test.js//在当前上下文中引入一个模块constmath=require('math');math.add(1,2);1.2模块定义模块上下文提供了一个exports对象用于import和export当前模块的方法或变量,并且是唯一的导出。模块中有一个模块对象,代表模块本身,exports是模块的属性。一个文件就是一个模块,导出的方式可以定义为将方法挂载为exports上的一个属性://math.jsexports.add=function(){letsum=0,i=0,args=arguments,l=参数.长度;while(i
