Koa 是一个全新的 web 框架,由 Express 幕后的原班人马打造,致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过使用异步函数,Koa 帮你丢弃回调函数,并有力地增强错误处理能力。 Koa 并没有捆绑任何中间件,而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
安装
Koa 需要 node v12.17.0 或更高版本,以满足对 ES2015 和异步函数的支持。
$ npm install koa
Hello koa
const Koa = require('koa');
const app = new Koa();
// 响应
app.use(ctx => {
ctx.body = 'Hello Koa';
});
app.listen(3000);
入门
- Kick-Off-Koa - 通过一系列自身指引的讲解介绍了 Koa。
- 指南 - 直接去看文档吧。
中间件
Koa 是一个中间件框架,可以采用两种不同的方法来实现中间件:
- async function
- common function
以下是使用两种不同方法实现一个日志中间件的示例:
async functions (node v7.6+)
app.use(async (ctx, next) => {
const start = Date.now();
await next();
const ms = Date.now() - start;
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});
Common function
// 中间件通常带有两个参数 (ctx, next), ctx 是一个请求的上下文(context),
// next 是调用执行下游中间件的函数. 在代码执行完成后通过 then 方法返回一个 Promise.
app.use((ctx, next) => {
const start = Date.now();
return next().then(() => {
const ms = Date.now() - start;
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});
});