目录
1. 模块化的概念
1.1 模块化的概念
1.2 模块化规范
2. Node.js中的模块化
2.1 模块分类
2.2 模块加载
2.3 模块作用域
2.4 向外共享模块成员
2.5 exports对象
2.6 Node.js中的模块化规范
按照模块指定规则,把一个大文件拆分为一个个小模块。这可提供代码的复用性,可维护性,按需加载。
如何引入的规范,如何暴露的规范
1. Node.js的内置模块:如fs、path、http模块等
2. 自定义模块:用户写的每个js文件
3. 第三方模块:第三方开发的模块
使用require来加载模块:
// 加载内置模块
const fs = require('fs');// 加载自定义模块、需要指定路径
const custom = require('./custom.js');// 也可省略.js后缀,require方法会自动补全// 加载第三方模块
const memont = require('memont');
和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。优点在于可以防止污染全局变量。
1. module对象
每个.js文件都有一个module对象,存储了跟当前文件有关的信息
2. module.exports
在自定义模块中,可以使用module.exports导出当前的文件对象,默认为空对象。
导出指定属性和方法:module.exports.xxx = xxx
注意:require永远以module.exports 指向的最新的对象为准
示例:
由于module.exports单词写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports对象。默认情况下,exports和module.exports指向同一个对象,最终共享的结果,还是以module.exports指向的对象为准。
注意:require()模块时,得到的永远是module.exports指向的对象:
上一篇:networkx学习记录