likes
comments
collection
share

自己写一个阉割版Koa

作者站长头像
站长
· 阅读数 30
Koa的基本流程

Koa2.X源码

  • 版本:koa@2.13.4
  • 入口:package.json中查找"main": "lib/application.js"

代码结构

Koa框架,lib目录有如下四个文件,
/libs/request.js

> 主要针对 http 的 request 对象提供了改对象的大量的 get 方法,文件主要是用来获取 request 对象属性。

/libs/response.js

> 主要针对 http 的 response 对象提供了该对象的大量 set 方法;该文件主要是用来设置 response 对象属性。

/libs/context.js

> koa 引入了上下文对象的概念,即 ctx,这里所谓的上下文对象实际上是 request 和 response 两个对象的并集,request 和 response 分别通过代理的形式,将自己的方法委托给 ctx。那样我们就可以用 ctx 同时操作两个对象,来简化操作。

/libs/application.js

> 该文件是整个 koa 的核心,简单来说主要有两大功能: 挂载真实请求到 ctx 下,封装中间件的执行顺序

1. 创建Koa对象

2. new Koa()实例

3. listen创建服务,并监听端口号

4. 使用use挂载中间件

5. 中间件执行

6. ctx上下文对象如何处理