Guide
感謝 HAO 所寫的 NestJS 帶你飛 筆記內容多參考此
介紹
Nest 是一個用於構建高效,可擴展的 Node.js 服務器端應用程序的框架。它使用漸進式 JavaScript,內置並完全支持 TypeScript(但仍然允許開發人員使用純 JavaScript 編寫代碼)並結合了 OOP(面向對象編程),FP(函數式編程)和 FRP(函數式響應編程)的元素。
在底層,Nest 使用強大的 HTTP Server 框架,如 Express(默認)和 Fastify。 Nest 在這些框架之上提供了一定程度的抽象,同時也將其 API 直接暴露給開發人員。這樣可以輕鬆使用每個平台的無數第三方模塊。
哲學
近年來,感謝 Node.js,JavaScript 已成為前端和後端應用程序的網絡“通用語言”。這產生了令人敬畏的項目,如 Angular,React 和 Vue,它們提高了開發人員的工作效率,並能夠構建快速,可測試和可擴展的前端應用程序。然而,雖然 Node(和服務器端 JavaScript )存在大量優秀的庫,幫助器和工具,但它們都沒有有效地解決主要問題 - 架構。
Nest 提供了一個開箱即用的應用程序架構,允許開 發人員和團隊創建高度可測試,可擴展,鬆散耦合且易於維護的應用程序。
安裝
首先,您可以使用 Nest CLI 構建項目,也可以克隆啟動項目(兩者都會產生相同的結果)。
要使用 Nest CLI 構建項目,請運行以下命令。這將創建一個新的項目目錄,並生成 Nest 核心文件和支持模塊,為您的項目創建傳統的基礎結構。建議初學者使用 Nest CLI 創建新項目。我們將在第一步繼續使用這種方法。
使用 CLI 安裝
$ npm i -g @nestjs/cli
$ nest new project-name
打開瀏覽器並導航到 http://localhost:3000/
為什麼我推薦使用 Angular + Nest.Js
Node.Js 問世以來,帶動 JavaScript 近十年的高速發展。基本上現在以 Angular、React.Js、Vue.Js 奠定前端三大基礎。 得利於 Node.Js,除了前端的網頁 開發,也讓 JavaScript 的觸角延伸至後端、桌面應用、手機 APP… 雖然 JavaScript 本身有許多缺陷,但在微軟推出 TypeScript 後,讓整體穩健性強化不少! 做為一個獨立開發者,做 Side project 或有想要打造自己的個人應用,現在各程式語言都有各種方便框架,都能迅速滿足需求! 曾經也嘗試過 Python/django、Node.Js/Egg.Js,也去比較過 PHP/Lareval、Java/Spring boot、.net Core… 一直嘗試找出一個最適合的組合,才打算開始做自己的東西。結果時間都花在最底層的框架裡,什麼都沒做!
於是開始認真思考獨立開發最需要的是什麼…?
自己獨立開發所期望的…
- 好擴展!要加功能時,最好框架本身就具備該功能。不必再花心力選擇要用什麼套件。
- 易維護!具有清晰的邏輯分離。雖然都是自己寫的,但難保放個半年後再回頭只想掐死當時的自己
- 語言統一!可以一個語言就搞定一切,不要切換寫法,避免開發過程思路打結
- 整套框架用法相似或一致!讓開發思路相近!
- 使用 Reactive Programing!雖然剛開始須花些心力學習,但掌握後,真心覺得 RP 讓邏輯清晰好讀許多
Nest 小常識
SWC (fast compiler) | NestJS - A progressive Node.js framework 開發時候 compiler 的速度快 20 倍