有人用 koa2 框架吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人用 koa2 框架吗相关的知识,希望对你有一定的参考价值。

koa2 完全抛弃了generator和co的做法,而是使用async/await来做异步开发。


## 不同

    koa和express在表现上的一点不同是采用ctx一个参数来调用中间件,而不是express的req, res。

    其实在使用上还是个人认为是更方便了的。

2. 然后是在中间件连接的方式上有所不同。

express的设计是串联的,设计思路超级简洁。

koa的某一个中间件可以自行选择之后中间件的执行位置的。


## 举例

比如一个服务器处理时间/日志的中间件的开发:

express:request

进来,记录时间到request._startTime上。绑定一个函数到response的'end','finish'以及

response.socket的'error','close'事件上。那个函数会用当前时间和startTime做差,算出运行时间。

koa2:

```js

const xTime = async (ctx,next)=>

let start = new Date

await next()

ctx.set('X-Response-Time', (new Date) - start) + 'ms')

```

这是在功能开发上,在错误处理上的友好度就更高了。

没有特意抹黑express的中间件开发,那个express版的计时器是express自带的服务器日志中间件morgan的实现。


## 社区

express的社区还是大。

koa本来就小,还被从koa1转koa2一折腾,就更小了。

而现在koa2还在alpha版,koa及其插件的开发速度比较没有保证。

你找到一个中间件,如果是express的,得转过来。如果是koa的,一般也得再转一次。

比如我使用的passportjs,github有koa版koa-passport,就分koa1版本和koa2版本的,选择时得注意一下。


## 个人评价

koa2好用,设计上的确有优势。优势不在能实现更强的功能,而是可以更简单地完成功能。

koa2社区远不如express,原因之一是~~因为koa2的正式版离发行估计还得3~6个月。~~koa的正式版是koa1。

koa1在思想上与koa2是一致的,但是koa2的实现更漂亮。

有koa1到koa2的中间件封装函数`koa-convert`。

而一般通用的中间件都有koa版,或者能够轻松的转为koa版。

参考技术A 我倒感觉koa2挺好用,习惯了,上手很快。
最近在vue里迷失,好多新东西,完全靠自己研究。

以上是关于有人用 koa2 框架吗的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS | koa2框架创建http服务

KOA2框架原理解析和实现

node koa2 初体验

KOA2框架原理解析和实现

Koa2框架从0开始构建预告片网站

基于Koa2+mongoDB的后端博客框架