NestJS - 高度模組化的 Node.js 框架
關於 NestJS
近期開展新的 side project 時相中了 NestJS 這個框架,一方面是自己對於 Node.js 體系的後端框架接觸較少,另一方面也看上它高度模組化的特性,嘗試練習更有系統、結構化的開發方式,搭配官方的 CLI 也可以對開發效率有很好的幫助,於是開始著手研究~
安裝、啟動!
根據 官方文件 的說明,會推薦使用 NestJS 的 CLI 來進行專案啟動,對後續的開發也可以有更好的效率。
$ # 使用 npm 進行 CLI 的全域安裝 $ npm i -g @nestjs/cli $ # 使用 CLI 啟動新專案,會在這邊詢問慣用的 package manager $ nest new <project_name> $ npm start
另外在啟動新專案時,可以帶上 --strict 來加上 TypeScript 的支援。
如果真的不想要使用 CLI 的話,也可以透過 clone 的方式來建立新的專案:
$ git clone https://github.com/nestjs/typescript-starter.git project $ cd project $ npm install $ npm start
初始預設會將 port 設定在 3000 上,因此連到 localhost:3000 後看到 Hello World! 字樣就代表啟動成功啦~
( 註:使用 npm start 無法讓伺服器在更動程式時即時的更新,需要使用 npm run start:dev 或是 npm run start:debug )
框架架構
成功啟動專案後,接下來就是打開專案資料夾準備開工了,可以看到大部分的程式都被歸在 src 目錄底下,並預設有以下檔案:
-
app.controller.spec.ts:撰寫單元測試的位置 -
app.controller.ts:設定 Controller 的位置 -
app.module.ts:設定 Module 的位置 -
app.service.ts:設定 Provider 的位置 -
main.ts:專案啟動的主程式
到這邊就正式的完成第一步了~ 至於上述的 Controller、Module 和 Provider 是 NestJS 中的三個核心角色,後續會再提到這些角色的功能和使用方式。
( 註:筆者在新建後打開專案有遇到 Prettier 跳出的錯誤提示,此時透過執行 npm run format 可以消除這個錯誤 )