官术网_书友最值得收藏!

5.1 Koa簡介

Koa是由Express開發(fā)團(tuán)隊打造的一種全新的Web框架,旨在為Web應(yīng)用提供更小、更強(qiáng)大的基礎(chǔ)。通過基于Promise的異步編程,Koa應(yīng)用可以不使用回調(diào)(callback),大大提高了開發(fā)效率。此外,Koa在其核心并未捆綁任何中間件(甚至于路由功能都需要外部中間件完成)。

由于Koa核心不捆綁任何中間件,因此Koa核心是“純凈的”,這極大地方便了用戶擴(kuò)展。此外,Koa使用了Promise、async/await語法來進(jìn)行異步編程,而Express是基于事件和回調(diào)的。

Koa框架和Express框架的主要差別在于異步編程和中間件方面,其他特性是相似的。

· Express框架使用回調(diào)來進(jìn)行異步處理,這也是Node.js標(biāo)準(zhǔn)的做法。但是基于回調(diào)的異步編程模型在多個異步操作之間有順序依賴時,會產(chǎn)生回調(diào)地獄(Callback Hell),也就是多層callback嵌套問題,代碼不利于維護(hù)。

· Koa框架使用了ES2017最新的async/await語法來進(jìn)行異步編程,從根本上解決了傳統(tǒng)Node.js異步編程風(fēng)格存在的問題,但是需要將異步調(diào)用包裝為Promise,之后的內(nèi)容我們將使用社區(qū)最強(qiáng)大的Bluebird來解決Promise包裝問題。

由于Koa進(jìn)行異步調(diào)用時強(qiáng)制使用async/await,因此需要將異步回調(diào)方法轉(zhuǎn)換為Promise,如果每個回調(diào)方法都需要自己包裝的話,工作量還是有點(diǎn)大,因此接下來將介紹這一問題目前最好的解決方案—Bluebird。

主站蜘蛛池模板: 来宾市| 稷山县| 东莞市| 葫芦岛市| 个旧市| 阿克苏市| 方山县| 巴南区| 上饶县| 南靖县| 古蔺县| 虎林市| 阿坝县| 西充县| 潮安县| 河南省| 芦溪县| 定南县| 清丰县| 方城县| 百色市| 措美县| 来凤县| 定边县| 扶风县| 彝良县| 南乐县| 丽水市| 靖江市| 水城县| 黔东| 洱源县| 醴陵市| 中西区| 永泰县| 小金县| 安西县| 桐柏县| 肇源县| 光山县| 平顶山市|