Express是第一代最流行的web框架,它对Node.js的http进行了封装,用起来如下:
虽然Express的API很简单,但是它是基于ES5的语法,要实现异步代码,只有一个方法:回调。如果异步嵌套层次过多,代码写起来就非常难看:
虽然可以用async这样的库来组织异步代码,但是用回调写异步实在是太痛苦了!
用generator实现异步比回调简单了不少,但是generator的本意并不是异步。Promise才是为异步设计的,但是Promise的写法……想想就复杂。为了简化异步代码,ES7(目前是草案,还没有发布)引入了新的关键字和,可以轻松地把一个function变为异步模式:
这是JavaScript未来标准的异步代码,非常简洁,并且易于使用。
koa团队并没有止步于koa 1.0,他们非常超前地基于ES7开发了koa2,和koa 1相比,koa2完全使用Promise并配合来实现异步。
出于兼容性考虑,目前koa2仍支持generator的写法,但下一个版本将会去掉。
目前JavaScript处于高速进化中,ES7是大势所趋。为了紧跟时代潮流,教程将使用最新的koa2开发!