Node.js中模块的分类
Node.js中根据模块来源的不同,将模块分为了3大类,分别是:
- 内置模块 (内置模块时由Node.js官方提供的,例如fs, http, path等)
- 自定义模块 (用户创建的每个.js文件,都是自定义模块)
- 第三方模块 (由第三方开发出来的模块,并非官方提供的内置模块,使用前需要先下载)
加载模块
使用强大的require()方法,可以加载需要的内置模块,用户定义模块,第三方模块进行使用,例如:
//加载内置的fs模块
const fs = require('fs')
//加载用户的自定义模块 导入自定义模块可以省略后缀
const custom = require('./custom.js)
//加载第三方模块
const moment = require('moment')
注意: 使用require()方法加载其他模块时,会执行被加载模块中的代码
Node.js中的模块化作用域
什么是模块作用域
和函数作用域类似,在自定义模块中定义的变量,方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域
模块作用域的好处
防止了全局变量污染的问题
在一个模块内部定义的成员,无法被外界所访问,只能在模块内访问
自定义模块:
const username = '张三'
function sayHello() {
console.log('这个变量的值是' + username);
}
调用模块:
const custom = require('./自定义模块');
//虽然能够赋值成功 但是custom的值为空
console.log(custom);
打印出来的custom为空对象