第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何評(píng)價(jià) Node.js 的koa框架?

如何評(píng)價(jià) Node.js 的koa框架?

藍(lán)山帝景 2018-12-13 09:15:42
如何評(píng)價(jià) Node.js 的koa框架
查看完整描述

1 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

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

## 不同
1. koa和express在表現(xiàn)上的一點(diǎn)不同是采用ctx一個(gè)參數(shù)來調(diào)用中間件,而不是express的req, res。
其實(shí)在使用上還是個(gè)人認(rèn)為是更方便了的。

2. 然后是在中間件連接的方式上有所不同。
express的設(shè)計(jì)是串聯(lián)的,設(shè)計(jì)思路超級(jí)簡(jiǎn)潔。
koa的某一個(gè)中間件可以自行選擇之后中間件的執(zhí)行位置的。

## 舉例
比如一個(gè)服務(wù)器處理時(shí)間/日志的中間件的開發(fā):
express:request
進(jìn)來,記錄時(shí)間到request._startTime上。綁定一個(gè)函數(shù)到response的'end','finish'以及
response.socket的'error','close'事件上。那個(gè)函數(shù)會(huì)用當(dāng)前時(shí)間和startTime做差,算出運(yùn)行時(shí)間。
koa2:
```js
const xTime = async (ctx,next)=>{
let start = new Date
await next()
ctx.set('X-Response-Time', (new Date) - start) + 'ms')
}
```
這是在功能開發(fā)上,在錯(cuò)誤處理上的友好度就更高了。
沒有特意抹黑express的中間件開發(fā),那個(gè)express版的計(jì)時(shí)器是express自帶的服務(wù)器日志中間件morgan的實(shí)現(xiàn)。

## 社區(qū)
express的社區(qū)還是大。
koa本來就小,還被從koa1轉(zhuǎn)koa2一折騰,就更小了。
而現(xiàn)在koa2還在alpha版,koa及其插件的開發(fā)速度比較沒有保證。
你找到一個(gè)中間件,如果是express的,得轉(zhuǎn)過來。如果是koa的,一般也得再轉(zhuǎn)一次。
比如我使用的passportjs,github有koa版koa-passport,就分koa1版本和koa2版本的,選擇時(shí)得注意一下。

## 個(gè)人評(píng)價(jià)
koa2好用,設(shè)計(jì)上的確有優(yōu)勢(shì)。優(yōu)勢(shì)不在能實(shí)現(xiàn)更強(qiáng)的功能,而是可以更簡(jiǎn)單地完成功能。
koa2社區(qū)遠(yuǎn)不如express,原因之一是~~因?yàn)閗oa2的正式版離發(fā)行估計(jì)還得3~6個(gè)月。~~koa的正式版是koa1。
koa1在思想上與koa2是一致的,但是koa2的實(shí)現(xiàn)更漂亮。
有koa1到koa2的中間件封裝函數(shù)`koa-convert`。



查看完整回答
反對(duì) 回復(fù) 2019-01-07
  • 1 回答
  • 0 關(guān)注
  • 621 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)