一、同步API和异步API
**同步API:**在主线程中执行,会阻止主线程后续代码的执行,通过返回值获取结果。
**异步API:**在一个独立的线程执行,不会阻止主线程后续代码的执行,通过回调函数获取结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWQi9r9E-1681174396735)(assets/1681097490373.png)]
二、文件系统模块
用于项目中文件的操作,例如:数据的导入、数据的导出
文件分为两种形式:目录形式、文件形式
1.查看文件状态
fs.statSync(文件的路径) / fs.stat(文件的路径, 回调函数)
isFile() 是否为文件
isDirectory() 是否为目录
2.清空写入文件
fs.writeFileSync(文件路径, 写入的值)
fs.writeFile(文件路径, 写入的值, 回调函数)
如果文件不存在,先创建文件然后写入
如果文件已经存在,先清空文件中的内容,然后写入
3.追加写入文件
fs.appendFileSync(文件路径, 写入的值)
fs.appendFile(文件路径, 写入的值, 回调函数)
如果文件不存在,先创建文件然后写入
如果文件已经存在,在文件的末尾追加写入
练习:使用同步方法往文件3.txt写入一个值,多次运行
练习:使用异步方法往文件4.txt写入一个值,多次运行
4.读取文件
fs.readFileSync(文件的路径) / fs.readFile(文件的路径, 回调函数)
读取的格式为Buffer
5.删除文件
fs.unlinkSync(文件的路径) / fs.unlink(文件的路径, 回调函数)
练习:使用同步方式删除1.txt,使用异步方法删除2.txt
6.检测文件是否存在
fs.existsSync(文件的路径) 存在->true 不存在->false
练习:如果文件3.txt存在,则使用同步方法删除文件
7.文件流
fs.createReadStream(文件路径) 将一个文件以流的方式读取,会分成多段
fs.createWriteStream(文件路径) 创建一个写入的文件流,可以将读取的流添加进来,会创建一个新的文件
pipe() 管道,用将读取的流添加到写入的流
8.后端事件监听
on(‘事件名称’, 回调函数) 一旦触发事件,会自动调用回调函数;事件名称是固定的字符串形式
三、HTTP协议
HTTP:超文本传输协议,是客户端和WEB服务器之间的通信协议
WEB服务器:为客户端提供资源的服务器,例如:html、css、图片、数据…
1.通用头信息
请求的网址:要请求的资源的完整路径
请求的方式:对以上资源的操作方式,常用的 GET / POST
响应的状态码:
1**:服务器收到部分请求,继续发送请求
2**:成功的响应
3**:响应的重定向,跳转到另一个资源
4**:客户端错误
5**:服务器端错误
2.响应头信息(response)
Location:设置要跳转的URL,通常结合状态码302
Content-Type:设置响应的内容类型,可以解决中文乱码
text/html;charset=utf-8
3.请求头信息(request)
四、HTTP模块
是Node.js下的一个核心模块,可以用来创建WEB服务器
createServer() 创建WEB服务器
listen() 设置WEB服务器的端口
// 通过事件监听客户端的请求,并作出响应
app.on('request', (req, res) => {
// req 请求的对象
// res 响应的对象
res.statusCode //设置响应的状态码
res.setHeader() //设置响应的头信息
res.write() //设置响应到客户端的内容
res.end() //结束响应
})
练习:编写文件,使用http模块创建WEB服务器,设置服务器端口;通过事件监听客户端的请求,设置响应的状态码为500,内容为"服务器端出现错误!"