- 内置模块(由Node.js官方提供,例如fs、path、http)
- 自定义模块(用户创建的每个. js文件,都是自定义模块)
- 第三方模块(由第三方开发出来的模块,使用前需要先下载)
加载模块
模块作用域
和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域 。
模块作用域的好处
- 防止全局变量污染的问题
向外共享模块作用域中的成员
1. module对象
2. module. exports对象
在自定义模块中 ,可以使用module. exports对象,将模块内的成员共享出去 ,供外界使用。
外界用require()方法导入自定义模块时,得到的就是module. exports所指向的对象。
3.共享成员时的注意点
使用require()方法导入模块时 ,导入的结果 ,永远以module. exports指向的对象为准。
4. exports 对象
exports和module. exports指向同一个对象,最终共享的结果还是以module. exports指向的对象为准。