Koa和Express 4.0有什么区别?

H K*_*han 16 frameworks node.js express koa

Koa和Express 4.0都是相当新的,从我读过的,Koa是由Express团队制作的.

根据我的理解,Koa需要节点的功能,这些功能仅在节点的0.11(不稳定分支)中可用,并且还使用生成器.Express 4.0似乎只是Express框架的下一个版本.

我完全没有任何差异吗?是否可能(基于Express团队公开声明的内容)Koa和Express将来会在某个时候合并?

谢谢!

Mat*_*tis 29

在发布开放式问题之前,搜索引擎应该是您的第一手段.

来自Koa文档:

Koa vs Express

从哲学上讲,Koa旨在"修复和替换节点",而Express则"增强节点".Koa使用co来摆脱回调地狱的应用程序并简化错误处理.它公开了自己的this.request和this.response对象,而不是node的req和res对象.

另一方面,Express使用其他属性和方法扩充了node的req和res对象,并包含许多其他"框架"功能,例如路由和模板,Koa没有.

因此,Koa可以被视为node.js的http模块的抽象,其中Express是node.js的应用程序框架.

...

Koa取代Express吗?

它更像是Connect,但许多Express好东西都被转移到Koa的中间件级别,以帮助形成更强大的基础.这使得中间件对整个堆栈而言不仅仅是最终应用程序代码更有乐趣,而且更不容易出错.

通常,当签名cookie秘密等功能通常是特定于应用程序而非特定于中间件时,许多中间件会重新实现类似功能,甚至更糟糕地错误地实现它们.

...

为什么Koa不是Express 4.0?

Koa与人们对Express的了解有很大不同,设计基本上有很大不同,因此从Express 3.0迁移到Express 4.0实际上意味着重写整个应用程序,所以我们认为创建一个新的更合适图书馆.

  • 不应通过提交数量来衡量项目的活动。它应该只是一个证据。稳定的项目也有低提交。 (2认同)

Ama*_*ena 6

  • Koa 不提供路由、模板、发送文件和 JSONP 等功能,而 express 提供。
  • koa 公开了自己的 ctx.request 和 ctx.response 对象,而不是节点的 req 和 res 对象,即 (req, res, next) 形式的函数与 Koa 不兼容。
  • Koa 可以看作是 node.js 的 http 模块的抽象,而 Express 是 node.js 的应用框架。

有关更详细的答案,您可以访问此链接上的官方文档:https : //github.com/koajs/koa/blob/master/docs/koa-vs-express.md