What is Koa?
Koa 是Node.JS平台下的一款Web服务器框架,它由原Express团队开发,区别于Express大量使用回调函数的形式,Koa采用最新的async/await模式,使用异步函数的方式来处理HTTP请求
Why Koa?
相比于Express是一个高度集成化的Web框架,Koa显得更加的小而美,
它本身并不集成任何的中间件(包括路由),但得益于它优秀的理念,以及便捷的模式,我们可以通过大量的第三方库对其功能进行扩充。
从业务上来说,使用Koa可以很容易地控制项目的规模。
从开发上来说,Express使用callback的方式处理异步,而在Koa中,Koa1采用generator,Koa2使用async/await的方式来处理异步流程控制。
例如使用callback的方式请求资源:
1 | fetchData(resourceID,method,function (data) { |
换成generator的模式:
1 | function *fetchData() { |
再使用async/await模式:
1 | async function fetchData() { |
可以看出,使用async/await的方式可以使得异步编程更加简洁易懂,而且最新的JS为我们提供了这样方便的模式,我们没有理由不使用更好且更新的东西。
使用Koa2
使用Koa实现Hello World
1 | const Koa = require('koa'); |
Context
与Express中不同,Koa将request和response集成到了Context中,也就是我们实现中间件函数中的ctx参数,可以通过ctx.request和ctx.response来对请求和响应进行操作。
展望
目前Koa社区尚且比较小,但其量级够轻,并且更加先进,这应该是一个值得开拓的新技术,对于开发者自身来说,使用JS语言的新特性用也可以更加顺手