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

1.1 Koa简介

Koa是Node.js的下一代Web框架。所谓的“下一代”是相对于Express而言的。Koa立身于最“潮”的异步流程控制特性,主要用于改进Node.js开发中的回调地狱痛点,可以说Koa是异步流程控制不断演进的必然产物。在所有的Node.js Web框架中,Koa无疑是最耀眼的一个。

Koa是由Express原班人马打造的,他们的初衷是使Koa成为一个更小、更健壮、更富有表现力的Web“微”框架,进而实现使用Koa编写Web应用,通过组合各种更高级的异步流程控制中间件,来免除重复烦琐的回调函数嵌套,并极大提升常见错误的处理效率。

Koa的代码量非常少,大约600行,是一个极轻量的优雅框架,这使得编写Web应用(尤其是开发基于Koa的Web应用)变得更得心应手。我们可以把它理解成一个基于http模块进行封装的、提供中间件写法的微内核模块。Koa约定了中间件写法,能够完成Web应用里的所有需求。由于Koa本身没有内置任何中间件,所以称之为Web框架并不完全准确,用“微”框架或者“内核”模块来描述它更合适。

目前Koa主要有两个版本:v1.x(统称为v1)和v2.x(统称为v2)。两个版本的核心API基本无差异,其他方面的差别如下。

○ Koa v1是基于ES6 Generator的。

○ Koa v2正式版本发布前,可通过koa-convert支持3种中间件写法,更现代、更时尚。

○ Koa v2正式版本发布后,主打async函数,要求使用Node.js v7.6以上版本。

○ Koa v1使用隐式的this作为上下文,而Koa v2则使用显式的ctx作为上下文,语义更清晰。

在2017年3月,Koa v2.0正式发布,可以说Koa v2.0和async函数的结合开启了Node.js Web开发的新时代。