关于网上介绍koa与express的区别,不是很懂
发布于 6 年前 作者 nathenchan 8295 次浏览 来自 问答

gg了一下大部分说的都是koa解决了回调地狱,在我的项目中,express遇到回调的情况都是大部分是mysql查询,这个我用promise解决了,感觉promise能解决的事情还要重新弄出一个koa来,koa没用过,目前看来下文档介绍,请指教,谢谢

19 回复

express 全 fastify 快 nest.js 稳 只推荐这三个~

express 回调地狱,也不存在了。 koa 的洋葱模型还是要好的,比如说做一些日志拦截的时候要方便;性能上有点差别,但一般的应用要求也还没到计较这个差别的时候。

@vellengs fastify 性能比 koa 和 express 高的不是一星半点~~

@zuohuadong 一般应用系统慢都不是底层框架慢的, 当然性能是越高越好,但生态、上手容易否,这些都是需要平衡考虑的。

放弃吧骚年,PHP才是最好语言

当初从express转koa,只是受不了无穷的回调,当然如果都用promise,其实差别就不那么大了,express和egg更有可比性,koa周边太少开发起来要造不少轮子。FYI. npm上express和koa的下载曲线对比Web框架Top10

来自✨ Node.js开源项目精选

@zuohuadong 没用过fastify,很多时候选框架除了速度,周边配套和代码质量也很重要。这些方面fastify跟express和egg.js比怎么样?

来自✨ Node.js开源项目精选

@vincent178 赞!很丰富很整洁。就是看到 < 100star的repo,有点手软,因为对于一个企业级或成熟的方案来说,或许有很多雷要扫。

来自✨ Node.js开源项目精选

fastify 比较新,还是值得关注的。 看了个模块 https://github.com/fastify/fastify-swagger 不是注解的方式生产API 文档的,简直不忍直视。

@vendar 其实express跟egg.js两者也没什么可比性。 express是web应用开发框架,本身非常薄(koa更薄),egg.js是比较完整的解决方案。[express + 一堆中间件] vs egg.js才有可比性。

@chyingp 对,理论上是这样。只不过express的中间件和周边相对于koa已经非常完备了,甚至比egg.js都要强。

来自✨ Node.js开源项目精选

koa2 性能比express 好不少, 内置async await 中间件。 用起来太方便了。 express 除了资源多点,对于有经验的nodejs开发者可以忽略不记。改一下用不了半天。

@vendar 老实说,很多中间件,都是对某个 node 模块简单的二次封装,代码量都是很少的。

所以我觉得 express 中间件 比 koa 完备 这是一个伪命题,无非是看下前者里面引入的模块是什么,然后简单封装为 koa 的语法。

@vendar 为什么express的曲线有几天会急跌呢?

image.png

express 提供了next模式,可以在中间件做异步操作,但是仅限于异步完成后通知下一个中间件。而该中间件本身是无法执行异步完成之后的逻辑,next仅仅是一个同步函数,,执行完就结束了。koa用到了async await ,所有中间件本身的异步逻辑完成之后还可以完成后该中间件的后置逻辑,一次请求会往返该中间件两次,很多逻辑就会只变得异常简单,代码易于维护。、 异常处理在express 中其实挺坑爹的,但是koa中异常处理非常简单。不管是同步还是异步,用promise包装之后都能被捕获。

image.png

上述代码用express的执行结果,期望two的异步执行完成后,再回过头来执行one,很明显做不到

回到顶部