Skip to content

Koa.js 核心

Koa 是由 Express 原班人马打造的更小、更富有表现力、更健壮的 Web 框架。

1. 特性

  • 轻量级: 内核很小,没有捆绑任何中间件。
  • Async/Await: 丢弃回调函数,优雅处理异步。
  • Context (ctx): 封装了 node 的 request 和 response 对象。

2. 洋葱模型 (Onion Model)

Koa 的中间件执行顺序遵循“洋葱模型”(先进后出)。

javascript
app.use(async (ctx, next) => {
  console.log('1. 进入外层');
  await next(); // 等待下一个中间件执行完毕
  console.log('4. 回到外层');
});

app.use(async (ctx, next) => {
  console.log('2. 进入内层');
  await next();
  console.log('3. 回到内层');
});
// 输出顺序: 1 -> 2 -> 3 -> 4

3. 与 Express 区别

特性ExpressKoa
中间件机制线性 callback洋葱模型 async/await
内置功能内置路由、模板等极简,均需插件
Contextreq, res 分离统一挂载在 ctx 上

4. 常用生态

  • koa-router: 路由
  • koa-bodyparser: 解析 body
  • koa-static: 静态资源

MIT Licensed | Keep Learning.