KOA 与 CO 实现浅析

KOA 与 CO 的实现都非常的短小精悍,只需要花费很短的时间就可以将源代码通读一遍。以下是一些浅要的分析。

如何用 node 实现一个 web 服务器

既然 KOA 实现了 web 服务器,那我们就先从最原始的 web 服务器的实现方式着手。
下面的代码中我们创建了一个始终返回请求路径的 web 服务器。

const http = require('http');
const server = http.createServer((req, res) => {
  res.end(req.url);
});
server.listen(8001);

当你请求 http://localhost:8001/some/url 的时候,得到的响应就是 /some/url。

KOA 的实现

简单的说,KOA 就是对上面这段代码的封装。

首先看下 KOA 的大概目录结构:

lib 目录下只有四个文件,其中 request.js 和 response.js 是对 node 原生的 request(req) 和 response(res) 的增强,提供了很多便利的方法,context.js 就是著名的上下文。我们暂时抛开这三个文件的细节,先看下主文件 application.js 的实现。

先关注两个函数:

// 构造函数  function Application() { if (!(this instanceof Application)) 
        		

网友评论