【Web前端基础】koa2和express的区别是什么

2021-02-04 14:32发布

7条回答
想当熊猫
2楼 · 2021-02-04 15:22

提到Node.js开发,不得不提目前炙手可热的2大框架express和koa。Express诞生已有时日,是一个简洁而灵活的web开发框架,使用简单而功能强大。Koa相对更为年轻,是Express框架原班人马基于ES6新特性重新开发的敏捷开发框架,现在可谓风头正劲,大有赶超Express之势。
知会上看到有个问题 《Express会被Koa2取代吗?》 。刚好对Express、koa有点小研究,于是简单回答了一下。

1、先说结论

目前没有看到Express会被koa2取代的迹象。

目前来说,Express的生态更成熟,入门门槛相对较低。从npm上的下载热度来说,两者的差距还较大,Express的月下载量约为koa2的40倍。

不过koa2的亮点足够吸引人,生态也开始变得完善。

2、从使用门槛来说

从使用上来说,Express对初学者更有好些,对着官网修修改改改就能做点东西出来。

koa2入门门槛比Express高些。更精简的内核带来的小问题就是,对使用者搭积木的能力要求更高了,毕竟连核心的路由功能都去掉了。

更不要说koa2中最吸引人的async/await,很多初学者promise都搞不明白,async/await用起来一头雾水,koa2最精华的部分之一就派不上用场了。

3、从大趋势来说

node社区壮大后,参与node服务端编程的同学会越来越多。届时,对服务端框架的要求会越来越高,那个时候就是各种企业级解决方案们的战场了。核心很有可能还是基于Express或者koa2,或者其他的。

至于Express和koa2,还是会继续有很大的市场,那个时候版本不知道是多少。

刘凤超
3楼 · 2021-02-04 16:31

Express诞生已有时日,是一个简洁而灵活的web开发框架,使用简单而功能强大。Koa相对更为年轻,是Express框架原班人马基于ES6新特性重新开发的敏捷开发框架,现在可谓风头正劲,大有赶超Express之势。

用法的区别

Express是基于回调,也是node中最常见的Error-First的模式(第一个参数是error对象)
Koa是使用的号称异步终极解决方案的Async/Await,也就是基于Promise,使用Try-Catch来捕获错误

中间件的区别

Express的中间件是线性模型

Koa的中间件是洋葱模型

集成度

Express自带了Router和Static的中间件
Koa需要自行安装Router和Static的中间件


小小李兆佳
5楼 · 2021-02-07 09:24

Express是基于 Node.js 平台,快速、开放、极简的 Web 开发框架

Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。


八九
6楼 · 2021-02-07 11:26

刚开始更推荐是用express玩一下,然后脱离express自己模仿造一个类似的轮子。

然后对各方面熟悉之后可以用express或者koa搭一个更完整的。

最后才上egg会好点,对于学习而言。

天使的奶爸
7楼 · 2021-02-20 09:15

目前没有看到Express会被koa2取代的迹象。

目前来说,Express的生态更成熟,入门门槛相对较低。从npm上的下载热度来说,两者的差距还较大,Express的月下载量约为koa2的40倍。

不过koa2的亮点足够吸引人,生态也开始变得完善。从使用上来说,Express对初学者更有好些,对着官网修修改改改就能做点东西出来。

koa2入门门槛比Express高些。更精简的内核带来的小问题就是,对使用者搭积木的能力要求更高了,毕竟连核心的路由功能都去掉了。

更不要说koa2中最吸引人的async/await,很多初学者promise都搞不明白,async/await用起来一头雾水,koa2最精华的部分之一就派不上用场了。

灰机带翅膀
8楼 · 2021-02-25 15:55

用法的区别

Express是基于回调,也是node中最常见的Error-First的模式(第一个参数是error对象)
Koa是使用的号称异步终极解决方案的Async/Await,也就是基于Promise,使用Try-Catch来捕获错误

中间件的区别

Express的中间件是线性模型
Koa的中间件是洋葱模型

集成度

Express自带了Router和Static的中间件
Koa需要自行安装Router和Static的中间件

社区活跃度

可以看到搜索koa,npm上相关包只有5000多个,而搜索express则有两万多个,所以就目前来说koa的社区活跃度是不如express的。


相关问题推荐

  • 回答 120

    相对前几年来说,要高上不少了,毕竟入行的人也是越来越多了,基础的工作对应想要参与的人群基数越来越大,但是对于高端人才的需求还是很多,人才还是相对稀缺性的。所以,想要学web或者其他技术也一样,别等,别观望。web前端就业方向特别多包括web前端开发...

  • 回答 25

    相对定位和绝对定位是定位的两种表现形式,区别如下:一、主体不同1、相对定位:是设置为相对定位的元素框会偏移某个距离。2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。二、特点不同1、相对定位:在使用相对定位时,无论是否进行移...

  • 抓包是什么意思?2020-04-01 17:36
    回答 7
    已采纳

    抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。抓包可以通过抓包工具来查看网络数据包内容。通过对抓获的数据包进行分析,可以得到有用的信息。目前流行的...

  • 回答 89

    常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架、Foundation框架等等

  • 回答 65
    已采纳

    前端是目的就业前景非常不错的一个计算机技术,但是自学的话还是有一定难度的,网络上自学是碎片化的,同时互联网技术跟新换代快,自己的话比较吃力也学习不到最新的技术。

  • SSR 是什么意思?2020-03-20 18:56
    回答 6

    SSR就是一台服务器,可以利用 SSR 在远程的服务器上配置 SSR,使其能够成为 SSR 节点,这样本地电脑或者其它设备利用 SSR 节点实现 VPN 或者远程上网及游戏加速等方面。ShadowsocksR(简称 SSR)是 Shadowsocks 分支,在 Shadowsocks 的基础上增加了一些数据...

  • 回答 52
    已采纳

    计算机培训方向比较多,建议找适合自己的方向选择培训编程类:JAVA、WEB、Python、C/C++、C#等测试类:软件测试运维类:云计算、网络安全设计类:UI设计、3D建模等

  • 回答 11

    1、代码判断xAxis: {type: 'time',splitLine: {show: false},interval: 3600, // 设置x轴时间间隔axisLabel: {formatter: function(value, index) {return liangTools.unix2hm(value)}}},首先要把xAxis 显示类型设置成time,然后设置对应X轴......

  • 回答 8

    HTML5 + CSS + JavaScript 开发 跨平台重用代码 

  • 回答 4

    采用rem单位自动响应,并提供独有栅格化系统快速定义宽高、边距节省css代码量,同时总结各大型移动端网页,提供一套ui颜色搭配规范,尺寸规范,字体规范等。

  • 回答 10

    iView UI、ioni、SUI

  • 回答 6

     jQTouch 

  • 回答 4

    如果只是普通的移动端用vue react 或者dva 如果是要编译成小程序什么的或者混生 就用uni-app(对应vue语法)taro(对应react) 或者纯原生 这个没有限制的,自己怎么舒服怎么来

  • 回答 4

    因为可以运用在网页和小程序的开饭中,而且开源,用着便宜,企业都很喜欢

  • 回答 10

    一、Visual Studio Code下载地址:https://code.visualstudio.com/微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。Visual Stud...

  • 回答 9

    jQuery自带淡入淡出效果 https://www.w3school.com.cn/jquery/jquery_fade.asp 看看这个 

没有解决我的问题,去提问