狼书(卷2):Node.js Web应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.4 为什么选择Koa

我们为什么在众多框架中选择Koa呢?理由大概如下。

○ 用async函数做异步流程控制时,代码更容易理解。

○ 错误处理干干净净。无论是async函数还是Promise规范都能非常好地处理异常,另外Koa是继承自Event的,结合ctx里的一些API能够更简单地处理错误。

○ 具有优雅的回形针中间件机制。通过更少的代码可以完成更多的工作,尤其是能对响应部分进行拦截,这是Express等框架无法做到的。

○ 性能非常好,比Express要好。

○ Koa核心代码量比较少,易于定制,易于在其上开发各种Web框架。比如,ThinkJS和Egg.js都是以Koa v2作为内核模块开发的著名Web框架。

○ 社区生态逐渐完善。在2015年其中间件数量还不多,但现在已经非常多了。

○ 国内外很多公司都已经大量应用Koa了,目前Node.js的首选Web框架是Koa。

○ 拥有Egg.js(基于Koa的成熟的企业级Web开发框架),拥有庞大的插件生态。

○ 拥有MidwayJS。它基于Egg.js生态,使用TypeScript编写,提供IoC容器,是面向未来的框架。