express和koa的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express和koa的区别相关的知识,希望对你有一定的参考价值。

参考技术A

express和koa从整体上来看,koa是比express更加轻量,他没有内置的各种中间件的支持,更集中于请求处理。当然在express 4.0以后,也移除了一批中间件支持,向轻量化进发。这一点上差别其实不是特别大了。

最大的差别是中间件和回调的处理逻辑。express采用的是callback,koa采用的是async,这样在执行上express的callback中就天然不支持异步的处理,在express中处理异步可能不是你想要的执行顺序。在这里,就有了koa的经典:洋葱模型。

除此之外,koa在响应上添加了上下文的概念,使用ctx存储各种响应信息,避免直接操作res。ctx能更好的帮助我们在多层级处理中传递信息,例如ctx.body可以多层级进行组合返回数据。

express 3 -> 4 之后,移除了一大批中间件,其中和我们关系比较大的是bodyParser、compress、cookieSession、cookieParser、static、directory等。

除此之外,4改变了路由注册的方式(增量式),增加了app.route、router = express.Router()的方式,中间件的app.use也支持path的注册。详见 Moving to Express 4 。

传送门
express和koa的区别

以上是关于express和koa的区别的主要内容,如果未能解决你的问题,请参考以下文章

koa2、koa1、express比较

koa和express对比

koa与express的中间件机制揭秘

node中从express到koa再到koa2的发展历程

如何评价 Node.js 的koa框架

Koa1 框架