Express和Koa的对比

概述

Express和Koa都出自同一个团队,通过对比它们的源码,可以看出来Koa更加成熟,代码更加易读,逻辑更加清晰。

比如: Express随处可见的var,和Koa的let、const; Express使用function作为构造函数,而Koa使用class、extend代替;

当然还有框架思想上也是有区别的,请接着往下看。

1. 中间件的入参

Express和Koa都增强了NodeJS原生的http.IncomingMessagehttp.ServerResponse,但是Koa还把它们两个都整合到了context上下文对象。

2. 中间件的处理方式

很多人都说Koa是洋葱模型,而Express是直线模型,其实这样说不严谨。

在中间件都是同步函数的时候,它们的执行结果是一样的;但是,当中间件是异步函数的时候,情况就不一样了,因为Koa的中间件可以返回Promise实例,所以可以通过Promise.then()或者async / await来控制执行顺序,而Express没有支持这个,它只是按照顺序或者可以提前通过next把执行权交给下一个中间件,如果某个中间件是异步函数的,了解过JavaScript的事件循环的话,我们知道结果是不如意的。

3. 内置模块

相对于Express,Koa没有了内置的路由功能、模板引擎,仅保留了中间件模块。

但是我们可以通过引入kow-routerkow-view等库来实现相同的功能。

作者只是把选择权交给了使用者,但是没有删减功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值