1. Node.js简介
Node.js是一个基于Chrome V8引擎的JavaScript运行环境。
地址:Node.js 中文网
1.1 Node.js中的JavaScript运行环境
(1)浏览器是JavaScript的前端运行环境
(2)Node.js是JavaScript的后端运行环境
(3)Node.js中无法调用DOM和BOM等浏览器内置的API
1.2 Node.js的下载与安装
(1)Node.js的下载
下载 Node.js
(2)Node.js的安装
双击默认安装
(3)查看已安装Node.js的版本号
node -v
2. 模块化
模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。
2.1 模块分类
Node.js中根据模块来源不同,将模块分为三大类:
(1)内置模块
内置模块是由Node.js官方提供的,例如fs、path、http等。
(2)自定义模块
用户创建的每个.js文件,都是自定义模块。
(3)第三方模块(又称为:包)
由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载。
2.2 模块加载
使用require() 方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用。
<script>
// 1.加载内置的fs模块
const fs = require('fs')
//2.加载用户的自定义模块
const custom= require("./custom.js")
// 3.加载第三方模块(关于第三方模块的下载和使用,会在后面的课程中进行专门的讲解
const moment = require('moment')
</script>
注意:使用 require() 方法加载其它模块时,会执行被加载模块中的代码。
2.3 module对象
在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息,打印如下:
2.4 module.exports对象
在自定义模块中,可以使用 module.exports对象,将模块内的成员共享出去,供外界使用。
外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象。
2.5 exports对象
由于module.exports单词写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports对象。默认情况下,exports和module.exports指向同一个对象(只是初始状态,如果exports或module.exports指向发生改变,则指向不同步)。最终共享的结果,还是以module.exports指向的对象为准。
注意:为了防止混乱,建议大家不要在同一个模块中同时使用exports和module.exports
2.6 CommonJS模块化规范
Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖。
CommonJS规定:
(1)每个模块内部,module变量代表当前模块。
(2)module变量是一个对象,它的exports属性(即module.exports)是对外的接口。
(3)加载某个模块,其实是加载该模块的module.exports属性。require()方法用于加载模块。
3. 内置API模块
3.1 fs文件系统模块
fs模块是Node.js官方提供的、用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
fs.readFile(...) // 读取
fs.writeFile(...) // 写入
3.2 http模块
http模块是Node.js官方提供的、用来创建web服务器的模块。
// 创建web服务器
http.createServer()
3.3 path路径模块
path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
(1)path.join() 方法
用来将多个路径片段拼接成一个完整的路径字符串
(2)path.basename()方法
用来从路径字符串中,将文件名解析出来