模块化
一、模块化概念
- 模块化指解决一个复杂问题时,自顶向下逐层把系统划分为若干模块的过程。
- 对于整个系统来说,模块是可组合、分解和更换的单元。
二、Node.js中的模块分类
- 根据模块来源不同分为以下三类:
- 内置模块(官方提供的模块,如:fs、path、http)
- 自定义模块(用户创建的js文件,就是自定义模块)
- 第三方模块(由第三方开发出来的模块,使用前需要下载)
- 加载模块,require()方法,只有加载用户自定义模块需要写入文件的相对路径
三、Node.js中的模块作用域
- 在模块内定义的变量、方法等成员,只能在当前模块被访问
- 好处:防止全局变量污染
- 向外共享模块作用域中的成员
- module对象
- 每个自定义模块中都有一个module对象,存储了和当前模块有关的信息
- module.exports对象
- 将模块内的成员共享出去,外部使用。在自定义模块中,默认情况下,module.exports是一个空对象。
- exports对象
- 为了简化,Node提供了exports对象,默认情况下,module.exports和exports指向同一个对象。
四、Node.js中的模块化规范
- Node.js遵循CommonJS的规范
- CommonJS规定:
- 每个模块内部,module变量代表当前模块
- module是一个对象,它的exports属性是对外的接口
- 加载某个模块就是加载该模块的module.exports属性。require()方法用于加载模块。