亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何評價 Node.js 的koa框架?

如何評價 Node.js 的koa框架?

藍山帝景 2018-12-13 09:15:42
如何評價 Node.js 的koa框架
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

koa2 完全拋棄了generator和co的做法,而是使用async/await來做異步開發。

## 不同
1. 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`。



查看完整回答
反對 回復 2019-01-07
  • 1 回答
  • 0 關注
  • 643 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號