什么是模块化:
在前端代码中,一个 HTML 文件中引入的所有的 JS 文件,都共同拥有同一个全局作用域,也就意味着,这些 JS 文件互相之间是不独立的,是可以进行数据访问的。
而在 Nodejs 中,引入了 模块化的概念。Nodejs 的模块化,就是将每一个 JS 文件都看作是一个独立的模块,都拥有自己单独的作用域。模块与模块之间,默认情况下数据不能进行互相的访问。
把代码进行模块化拆分的好处:
- 方便代码管理、项目维护
- 有助于分工协同开发
- 模块和模块之间不会出现变量"污染",一个模块就是一个作用域。
- 模块化可以做到职责分离,每个模块实现一个独立的功能
Node.js 中根据模块来源的不同,将模块分为了 3 大类,分别是:
内置模块(内置模块是由 Node.js 官方提供的,例如 fs、path、http 等)
自定义模块(用户创建的每个 .js 文件,都是自定义模块)
第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载)
require()
在 nodejs 中,提供了一个全局的方法 require(),用于在一个 JS 文件中,引入另一个 JS 文件
向外共享模块作用域中的成员exports 和 module.exports
由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node 提供了 exports 对象。默认情况
下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 module.exports 指向的对象为准。