koa context
在分析koa
其他原理之前,首相需要理解koa
中提出的context
到底是什么,下面用一张图来说明

抽象和封装
抽象出
Request
,Response
,Context
三大类,封装常用操作将
Request
,Response
,部分方法代理到Context
上为了实现最终用一个`Context`实例携带全部属性方法,传递给中间件使用
实例化
Request
,Response
,Context
,并将其实例关联Koa Application
实例(示例图中的app
),Node.js
的http request
实例(示例图中的req
),Node.js
的http response
实例(示例图中的res
)关联起来关联的部分原因是`Request`, `Response`, `Context`封装常用操作时,用到了`app`,`req`,`res` 另一部分原因是保留原始`req`,`res`数据
这样一来,Context
的实例就将一个http server
常用的全部属性方法全部封装到一个上下文中,方便传递给中间件调用,完成了请求准备工作