中间件
中间件理解
中间件可以理解为业务流程的中间处理环节。如生活中吃一般炒青菜,大约分为如下几步骤
express中当一个请求到达的服务器之后,可以在给客户响应之前连续调用多个中间件,来对本次请求和返回响应数据进行处理。(middleware)
中间件分类
中间件可以分类可分如下几类
- 内置中间件 也就是express本身自带无带npm安装
- 第三方中间件
非 Express 官方内置的,而是由第三方开发出来的中间件,叫做第三方中间件。在项目中可以通过npm进行安装第三方中间件并配置,从而提高项目的开发效率。例如body-parser 此中间件可以很方便帮助我们获取到post提交过来的数据。
- 自定义中间件 开发者自己编写的
自定义中间件
自定义中间件,其本质就是定义一个处理请求的函数,只是此函数中除了有request和response参数外还必须包含一个next参数,此参数作用让中间件能够让流程向下执行下去直到匹配到的路由中发送响应给客户端。也可以通过给request对象添加属性来进行中间件数据的向下传递
function mfn(req,res,next){
// 中间件最后一定要执行此函数,否则程序无法向下执行下去
next()
}
使用中间件来实现错误的统一处理,即错误级别中间件
app.get(uri,(req,res)=){
// 如果处理有异常 抛出一个自定义错误
throw new Error('服务器内部错误')
res.send('hello')
})
// 自定义中间件完成错误级别中间件
app.use((err,req,res,next)=>{
// 此处err必须为第1个参数,它会获取得到 throw抛出的异常信息
console.log(err.message)
res.send(err.message)
})
l 在路由规则中添加中间件