Koa2源码解析
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。被称为基于Node.js的下一代开发平台框架。在这里主要分析了koa2的主要的运行流程以及相关源代码,
从一个简单的实例开始:
const Koa = require('koa')
const app = new Koa()
app.use(async (ctx, next) => {
ctx.body = {
hello: 'world'}
})
app.listen(3000, function() {
console.log("server running at 3000")
})
在这个简单的实例中主要做了三件事
1. 新建Koa实例
2. 调用use函数
3. 调用listen
由此可知, Koa的入口主要是use和listen函数,所以我们就从这两个函数入手看看Koa到底做了哪些事情
use函数(koa/lib/application.js):
主要功能就是把传进来的函数放入一个数组中
use(fn) {
if (typeof fn !== 'function') throw new TypeError('middleware must be a function!');
if (isGeneratorFunction(fn)) {
deprecate('Support for generators will be removed in v3. '