前言
中间件模式是现如今各个框架——尤其是 Web 框架使用得较多的一种开发模式。譬如大名鼎鼎的 Express, Koa 等均使用中间件来处理请求。那么,何为中间件模式呢?
什么是中间件
处理 Web 请求时,我们常常需要进行验证请求来源、检查登录状态、确定是否有足够权限、打印日志等操作,而这些重复的操作如果写在具体的路由处理函数中,明显会导致代码冗余,这个时候,我们就可以将这些通用的流程抽象为中间件函数,减少重复代码。
我们可以将 Web 请求想象为一条串联的管道,在管道中有多个关卡,请求数据由源头起,依次流过各关卡,每个关卡独立运作,既可以直接响应数据,又可以对请求稍作调整,并使之流向下一关卡,这个关卡,就是中间件。
Koa 的中间件
我们以 Koa 的中间件为例。
router
.get('/users', loginChecker,