一、什么是 Koa 的中间件
在 express 中间件(Middleware)是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处理请求-响应循环流程中的中间件,一般被命名为 next 的变量。在 Koa 中中间件和 express 有点类似。
简单来说,中间件就是匹配koa路由之前或者匹配路由完成后做的一系列操作,简称中间件。
功能包括:
1、执行任何代码
2、修改请求和响应对象
3、终结请求—响应循环
4、调用堆栈中的下一个中间件
这里需要注意的是:假如我们get、post回调函数中没有next函数,那么只会匹配到第一个路由,不会继续往下匹配。如果功能需求需要继续往下匹配,则需要加上next();
二、Koa 应用的几种中间件:
1、应用级中间件
2、路由级中间件
3、错误处理中间件
4、第三方中间件
1、应用级中间件
2、路由级中间件
3、错误处理中间件
4、第三方中间件
三、koa各种中间件的执行顺序
相对于Express,koa中间件的执行顺寻遵循洋葱图模型。如下:
先从外到里,然后再从里到外,这就是洋葱图模型的定义,也是koa中间件的执行顺序。