commonjs模块化
暴露:模块内部的变量其他模块是无法访问,如果想要其他模块进行访问,需要进行接口的暴露,Commonjs模块化利用module.exports进行接口的暴露,module是一个对象,每个模块都拥有这个对象,exports属性是用于将当前目录信息传递到其他模块,其默认值是一个空对象
引用:require(模块)
1. 当模块为自定义模块的时候,参数为文件路径。require('./a.js')
2. 当模块为内置模块的时候,参数为模块名称。require('http')
3. 当模块为第三方模块的时候,参数为模块名称,但是需要先进行模块的安装
$ cnpm install axios --save
require('axios');
模块引入本质的就是获取被引入模块中的module.exports属性
es6模块化
如果想要让nodejs支持es6模块化:①node版本v14+ ,② package.json添加一个配置项 type:"module"
模块暴露:
export 声明
可以多次使用,使用哪个变量暴露,就要使用哪个变量获取
export default
只可使用一次,可以使用任意变量名来获取
一个模块中可以既使用export又使用export default
模块引用:
import aa from './a.js'