什么Express是中间件?
中间件就是一堆方法,可以接收客户端发来的请求。可以对请求做出响应,也可以将请求继续交给下一个中间件继续处理。
!引入框架和创建实例app
const express = require(‘express’)
const app = express()
构成
中间件由两部分构成
- 中间件方法
- 请求处理函数
其中中间方法由框架提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求
/*
以下中间件参数说明:
[参数1]:请求路径
[参数2]:处理函数
@param req 用户请求对象,包括用户请求的信息
@param res res 返回给用户的响应
@param next 是否调用 next() 决定路由是否向下匹配
*/
// 接收get请求
app.get('',(req,res,nex)=>{
})
// 接收post请求
app.post('',(req,res,nex)=>{})
// 匹配所有的请求函数 - 可直接传入请求处理函数,代表接收所有的请求
// 注意: 若其之前还存在其它中间件,且在处理请求后未调用next()方法移交控制权。那么他也无法对请求进行处理
app.use('', (req,res,next)=> {
})
中间件的实际应用
- 路由保护,客户端在访问需要登陆身份的页面时,可以使用中间件判断用户的登陆状态。若未登录,则拦截请求。直接响应,禁止用户进入进入要身份登录的页面
- 网站公告的维护,在所有的路由上定义接收所有请求的中间件,直接为客户端做出响应。
- 自定义404页面
错误处理中间件
在程序执行的过程中,不可避免的会出现一些错误,比如:文件读取失败,数据库连接失败,而错误处理中间件就是集中处理错误的地方。
// 注意:其只能捕获同步代码错误,异步错误需要调用next(err)将错误对象传递出来
app.use((err,req,res,next)=> {
// 当发生错误时,该中间件将被调用
})
// 异步代码,触发错误中间件实例。
// 当程序出现错误时,调用next()方法,并将错误的信息通过参数的形式传递给next()方法,即可触发错误中间件。
app.get("", (req, res, next)=> {
fs.readFile('./file.txt', (err, data)=> {
if(err) {
next(err)
}
})
})
本文介绍了Express中间件的概念,包括其作为请求处理方法的角色,构成中的中间件方法和请求处理函数,以及在路由保护、公告维护和自定义错误处理等实际场景中的应用。

1万+

被折叠的 条评论
为什么被折叠?



