Node.js+Koa2+TypeScript技術概覽

老呂4519發表於2023-02-01

最近幾年一直使用Node.js作為後端服務平臺,透過Koa2框架中介軟體快速搭建Web服務,但是使用JavaScript開發大型後端服務時會使程式變得難以維護,繼而使用TypeScript語言開發,使編譯、除錯、檢查和程式碼管理變得更加容易。

下圖是使用Koa2框架搭建後端服務的思維導圖:

 

 

 

 

 


 

 

一、Node.js

介紹:一個開源的、跨平臺的JavaScript執行時環境。類似於C#的.NetFramewok,Java的JRE。

優點:

  1. 超強的併發能力;

  2. 單執行緒的高效能並行非阻礙I/O,基於事件驅動;

  3. 前後端開發語言一致,開發效率高;

  4. 微服務和SeverLess開發更具優勢;

不足:

  1. 不適合計算密集型應用;

  2. 不適合大記憶體應用;

  3. 不適合大量同步應用。 

使用場景:

  1. 開發Web服務Api,比如RESTful API;

  2. 伺服器渲染頁面,提升速度;

  3. 後端的 Web服務,例如跨域、伺服器端的請求。 

應用方向:

  1.  善於 I/O,天生非同步的特點讓其非常擅長進行任務排程和處理併發 I/O,但不善於計算;

  2. 業務方向:網站開發、即時通訊、小程式開發、跨平臺開發等;

  3. Node.js 過於追求效能而導致健壯性有所不足,所以不適用於銀行、證券等方向,但適合創業公司這種小體量、追求效能的公司;

  4. 大型企業在客戶端和伺服器端直接加設Node.js,適合用Node.js做的就儘量用成本低迴報高的Node.js來做。

 


 

 

二、Koa2

介紹:基於 Node.js 平臺的下一代 web 開發框架。由 Express 原班人馬打造的,致力於成為一個更小、更富有表現力、更健壯的 Web 框架。使用 Koa 編寫 Web 應用,可以免除重複繁瑣的回撥函式巢狀, 並極大地提升錯誤處理的效率。Koa 不在核心方法中繫結任何中介軟體, 它僅僅提供了一個輕量優雅的函式庫,使得編寫 Web 應用變得得心應手,最大的特點就是可以避免非同步巢狀。利用ES7的async/await特性,極大的解決了我們在做Node.js開發的時候非同步給我們帶來的煩惱。

優點和不足:非常簡單,而且極度自由,這種理念是優點也是缺點。

 


 

 

三、未來展望

  1. 實時應用:實時應用是大勢所趨,並且將保持在排行榜前列。這些應用需要一個強大且健壯的後端。即時通訊、視訊通話和線上遊戲,以及許多其他相似的應用是完美的案例;

  2. 物聯網:Node.js提供一個特性豐富的執行環境,允許開發者使用面向資料和及時能力,以及微服務,當你在為自己的客戶構建 IoT(物聯網)應用時,你可以相信 Node.js 能夠幫助到你;

  3. SeverLess:每個人都喜歡既能省錢還能提高開發者的生產力和效率的方案,而將 Node.js 用於無服務架構正好是一個絕妙的解決方案。維護成本幾乎為零,而且並不需要公司擔心其應用的效能;

  4. GraphQL:GraphQL 是 RESTful API 的一個成功的選項。GraphQL 使程式設計師可以精確地說明它需要的資訊。它可以有效地從不同的渠道收集大量資訊。GraphQL 每年都在發展,是另一種 Node.js 趨勢;

  5. 微服務:基於Node.js的優點,其更適合搭建微服務平臺。

 


 

       

          更多精彩,請關注公眾號,互相學習,共同進步!

 

相關文章