Koa

By John Han
Picture of the author
Published on
image alt attribute

Koa

官网说 Koa 是下一代的 Node.js web 框架

那么它的上一代是谁呢?

是 Express。

所以,想更好地理解 Koa,自然就要把它和 Express 对比着来看。

1. Koa 是什么

Koa 可以看作是 node.js 的 http 模块的抽象,仅此而已。

2. Koa 的特征

5. Koa VS Express

5.1 处理 req、res 的理念不同

从设计理念上讲,Koa 的目标是 "修复和替换 node",而 Express 则是 "增强 node"。它公开了自己的 ctx.request 和 ctx.response 对象,而不是 node 的 req 和 res 对象。

Koa 可以看作是 node.js 的 http 模块的抽象

Express 则是 node.js 的应用程序框架,它包含了 Routing(路由)Templating(模板)Sending Files(静态文件处理)等中间件。

Koa VS Express:

koa vs express
koa vs express

5.2 Koa 支持 Promise

支持 Promise 不仅仅是带来语法上的方便。

要知道,Node.js 的内置模块大都提供了 Promise 写法,两者契合度更高,十分有利于提高开发效率。

如:

5.6 选择谁?Koa or Express

2021 年回答这个问题的话,答案是:

选 Koa.

理由如下:

  • 能做 Express 可以做的一切
  • 设计理念更简洁(只有 Middleware Kernel)
  • 更轻量,灵活性更好(总有些 Express 的功能你是用不到的)
  • 支持下一代 ES(async/await)

不错的 Blog 推荐

koa 实践总结,总有你用的到抄的走的

参考

官方对比,值得一看 -- Koa VS Express

Stay Tuned

Want to become a Next.js pro?
The best articles, links and news related to web development delivered once a week to your inbox.