koa的洋蔥模型
段永鵬
發(fā)布于 廣東 2018-02-28 · 3.4w瀏覽 1回復(fù) 9贊

所有的請(qǐng)求經(jīng)過(guò)一個(gè)中間件的時(shí)候都會(huì)執(zhí)行兩次,對(duì)比 Express 形式的中間件,Koa 的模型可以非常方便的實(shí)現(xiàn)后置處理邏輯,對(duì)比 Koa 和 Express 的 Compress 中間件就可以明顯的感受到 Koa 中間件模型的優(yōu)勢(shì)。

?異常處理

通過(guò)同步方式編寫(xiě)異步代碼帶來(lái)的另外一個(gè)非常大的好處就是異常處理非常自然,使用?try catch?就可以將按照規(guī)范編寫(xiě)的代碼中的所有錯(cuò)誤都捕獲到。這樣我們可以很便捷的編寫(xiě)一個(gè)自定義的錯(cuò)誤處理中間件。

async function onerror(ctx, next) {
?try {
? ?await next();
?} catch (err) {
? ?ctx.app.emit('error', err);
? ?ctx.body = 'server error';
? ?ctx.status = err.status || 500;
?}
}


段永鵬
瀏覽 3.4w
9
相關(guān)推薦
最新評(píng)論 1
贊過(guò)的人 9
評(píng)論加載中...

暫無(wú)評(píng)論,快來(lái)評(píng)論吧!