- Node.js+Webpack開發(fā)實戰(zhàn)
- 夏磊
- 471字
- 2021-03-26 21:53:53
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。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- JavaScript前端開發(fā)模塊化教程
- Apache Oozie Essentials
- 深入淺出Windows API程序設(shè)計:編程基礎(chǔ)篇
- 用Flutter極速構(gòu)建原生應(yīng)用
- Oracle JDeveloper 11gR2 Cookbook
- C語言程序設(shè)計
- Python從入門到精通
- Learning Nessus for Penetration Testing
- Visual C++從入門到精通(第2版)
- 快樂編程:青少年思維訓(xùn)練
- SQL Server實例教程(2008版)
- INSTANT LESS CSS Preprocessor How-to
- Mastering Machine Learning with R
- Cloud Development andDeployment with CloudBees