本系列文已出版成書「NestJS 基礎必學實務指南:使用強大且易擴展的 Node.js 框架打造網頁應用程式」,感謝 iT 邦幫忙與博碩文化的協助。如果對 NestJS 有興趣、覺得這個系列文對你有幫助的話,歡迎前往購書,你的支持是我最大的寫作動力!
近年來,前後端都可以看到 JavaScript 的蹤影,Node.js 的誕生讓 JavaScript 變得非常熱門,在 Node.js 生態圈中,主流的後端框架不外乎就是 Express 與 Koa,這些框架非常 自由 且 輕量,能夠快速建立應用,因此非常受歡迎。
由於這些框架非常自由,所以 沒有嚴謹的架構規範,非常容易寫出 高耦合、低內聚 的程式碼,甚至 檔案結構非常鬆散,使用這些主流框架的開發者如果沒有訂定一套規範,將會面臨許多挑戰。
後來出現了一套名為 NestJS 的框架,它受到前端框架 Angular 的啟發,運用大量的 設計模式 與 架構規範,再搭配強型別的 TypeScript,提供開發人員 嚴謹、易擴展、鬆耦合 的開發環境。
NestJS 採用模組化設計,將每種功能打包成獨立模組,且設計許多抽象層來將各個不同職責的程式碼片段抽成 各式元件,具有高度的解耦合與擴展性。NestJS 可以選擇使用 Express 或 Fastify 作為底層基礎,來打造 MVC 或 REST API 的應用,並將各種熱門套件進行整合,如:TypeORM、mongoose、passport 等,甚至還可以實作時下非常流行的微服務 (Microservice),可說是一套整合度很高的框架。
NestJS 結合了三種程式設計的概念:
從這些概念中提取精華,再搭配設計模式,使 NestJS 的整體架構十分清晰且嚴謹。
以往 Node.js 作為後端應用最被詬病的不外乎就是 型別問題 與 架構問題,NestJS 正是解決這兩大問題的最佳選擇,然而在臺灣 NestJS 的熱度相對來說並沒有那麼高且繁體中文的教學也是相對稀少的,為了促進 NestJS 在臺灣的發展,我決定寫這個系列文來推坑各位這款強大的 Node.js 後端框架,事實上,我在去年的系列文就已經埋下了今年系列文的伏筆。本系列文會以 REST API 的方向來撰寫,具體規劃如下:
另外,在文章中可能會有一些規則需要先了解:
<大寫英文>
當作佔位,讀者們自行輸入欲命名之名稱。另外,所有的指令開頭都會有一個 $
表示這是指令,無須輸入該符號。建議讀者們至少要具備以下條件,會比較容易理解接下來的內容:
提醒:Node.js 也可以使用 nvm 進行安裝。