一、是什么
中间件(Middleware)是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的
在NodeJS中,中间件主要是指封装http请求细节处理的方法
例如在express、koa等web框架中,中间件的本质为一个回调函数,参数包含请求对象、响应对象和执行下一个中间件的函数
开始-》请求-》业务逻辑-》响应-》结束
在这些中间件函数中,我们可以执行业务逻辑代码,修改请求和响应对象、返回响应数据等操作
二、封装
koa是基于NodeJS当前比较流行的web框架,本身支持的功能并不多,功能都可以通过中间件拓展实现。通过添加不同的中间件,实现不同的需求,从而构建一个 Koa 应用
Koa 中间件采用的是洋葱圈模型,每次执行下一个中间件传入两个参数:
ctx :封装了request 和 response 的变量
next :进入下一个要执行的中间件的函数
下面就针对koa进行中间件的封装:
Koa的中间件就是函数,可以是async 函数,或是普通函数