用 Nest.js 開發 API 吧 (一)


Posted by AlanSyue on 2020-11-14

大約 8 月的時候,我開始計畫重寫 資訊種子培訓計畫 的官網。原本的程式碼經過大約 7 屆的迭代,比較缺乏維護重構,大多是因應招生計劃再重新設計,有點類似活動頁。評估過後因為包袱較少,就打算整個重寫,並嘗試用新一點的技術來開發,也讓我有機會碰 Nest.js。

為什麼選用 Nest.js

當初打算重寫的時候,有和 15 屆的學弟一起討論,前端打算使用 Next.js。後來考慮到後續維護,就想說使用 Node.js,這樣維護的開發者只需要熟悉 JavaScript。

當時的討論也在想說要用哪套 Node.js 框架,於是學弟有提出可以研究看看 Nest.js,是一套架構嚴謹的框架。由於後續維護者會是學生為主,有一套嚴謹架構的框架,可以保持一定的程式品質。

研究之後發現了解到 Nest.js 有以下不錯的優點:

  1. 基於 Express,但也可以選用配置 Fastify
  2. 完美支援 TypeScript,強型別以及預先檢查減少開發上的預期外錯誤 (這各有擁護者,但我開發上覺得體驗不錯)
  3. 嚴謹的分層,彈性高、鬆散耦合、高度可測試及維護
  4. 官方文件完善,社群豐富

於是就採用 Nest.js 做為此次專案的後端技術來做開發了。接下來的系列文章會以開發過程的實作紀錄來撰寫。

首先,先來安裝吧

一開始先安裝 Nest.js 提供的 cli 套件:

yarn global add @nestjs/cli

安裝完後要來創建專案,使用 cli 來建置:

nest new project-name

建置時會問你要使用 npm 還是 yarn,就選擇自己想用的

啟動專案

設置完後,移動到專案資料夾

cd project-name

接著輸入指令啟動

yarn start:dev

啟動畫面

接著到瀏覽器輸入 http://localhost:3000/,看到預設的 Hello World! 字串代表你成功啟動了

小結

第一篇介紹了

  1. 選用 Nest.js 的原因
  2. 如何安裝
  3. 如何啟動

下一篇預計分享 Nest.js 的專案架構。如果文章有任何錯誤或建議,歡迎告知!

NEXT:用 Nest.js 開發 API 吧 (二) - 專案架構


#javascript #nodejs #framework #Backend #API #nestjs







Related Posts

DOM 的事件傳遞機制

DOM 的事件傳遞機制

PHP 和 MySQL 的互動 2 : CRUD

PHP 和 MySQL 的互動 2 : CRUD

7. 延伸開發與相關挑戰

7. 延伸開發與相關挑戰


Comments