作者相同
Express 是由 TJ 在2010年6月编写,2014年发展到 node.js v0.12,基本成熟。
Koa 是由 TJ 在2013年8月开始编写,2015年发布 Koa v1.0.0版本。
API相同,几乎一样。
编程模型不同
Express 的中间件是线性的,请求到响应,类似队列。
Koa 的中间件是U型的,洋葱模型,请求到响应,获取开始到结束的状态。
语言特性使用不同
Express 使用回调函数 next()
Koa v1.x 使用 generator 语法
Koa v2.x 使用 async/await 语法,await next() 等待下一个中间件,下一个函数会返回一个Promise对象。