Node.js+Webpack开发实战
上QQ阅读APP看书,第一时间看更新

5.1 Koa简介

Koa是由Express开发团队打造的一种全新的Web框架,旨在为Web应用提供更小、更强大的基础。通过基于Promise的异步编程,Koa应用可以不使用回调(callback),大大提高了开发效率。此外,Koa在其核心并未捆绑任何中间件(甚至于路由功能都需要外部中间件完成)。

由于Koa核心不捆绑任何中间件,因此Koa核心是“纯净的”,这极大地方便了用户扩展。此外,Koa使用了Promise、async/await语法来进行异步编程,而Express是基于事件和回调的。

Koa框架和Express框架的主要差别在于异步编程和中间件方面,其他特性是相似的。

· Express框架使用回调来进行异步处理,这也是Node.js标准的做法。但是基于回调的异步编程模型在多个异步操作之间有顺序依赖时,会产生回调地狱(Callback Hell),也就是多层callback嵌套问题,代码不利于维护。

· Koa框架使用了ES2017最新的async/await语法来进行异步编程,从根本上解决了传统Node.js异步编程风格存在的问题,但是需要将异步调用包装为Promise,之后的内容我们将使用社区最强大的Bluebird来解决Promise包装问题。

由于Koa进行异步调用时强制使用async/await,因此需要将异步回调方法转换为Promise,如果每个回调方法都需要自己包装的话,工作量还是有点大,因此接下来将介绍这一问题目前最好的解决方案—Bluebird。