Skip to content

六、Node.js中的模块分类

1、Node.js中的模块分类

  • 内置模块(内置模块是由Node.js官方提供的,例如fs、path、http等)
  • 自定义模块(用户创建的每个.js文件,都是自定义模块)
  • 第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载)

2、加载模块

require()方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用

js
//1、加载内置的fs模块
const fs=require('fs');

//2、加载用户自定义模块
const custom=require('./custom.js')

//3、加载第三方模块
const moment=require('moment')

注意:使用require()方法加载其他模块时,会执行被加载模块中的代码

3、向外共享模块作用域中的成员

1、module对象

在每个.js自定义模块中都有一个module对象,它里面存储和当前模块有关的信息

js
Module {
  id: '.',
  path: 'G:\\大二下学期\\Nodejs\\module',
  exports: {},
  filename: 'G:\\大二下学期\\Nodejs\\module\\test.js',
  loaded: false,
  children: [],
  paths: [
    'G:\\大二下学期\\Nodejs\\module\\node_modules',
    'G:\\大二下学期\\Nodejs\\node_modules',
    'G:\\大二下学期\\node_modules',
    'G:\\node_modules'
  ]
}

通过module.exports来对外导出数据

4、Node.js中的模块化规范

Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖

CommonJS规定:

  • 每个模块内部,module变量代表当前模块
  • module变量是一个对象,它的exports属性(即module.export)是对外的接口
  • 加载某个模块,其实是加载该模块的module.exports属性。require()方法用于加载模块