《NestJS 絕地求生手冊》整理一年來從 Angular 前端轉向 NestJS 後端開發時實際踩過的坑。系列將依問題發生階段,從 DI、Module、DTO 驗證、型別轉換、TypeORM,到 Interceptor、Exception Filter 與 Swagger,拆解 30 個常見但容易卡關的情境。這不是從零教學,而是一份面向實戰的排雷筆記,希望幫助開發者更快定位問題、理解 NestJS 的運作方式,少走一點冤枉路。
隨著專案進入前後端串接的階段,我們的 API 終於要面對真實世界的考驗了。說到前後端分離,開發者一定都遇過一堵無形的牆——跨來源資源共用(CORS)。 你可能會...
解決了前面「路由與請求進入」階段 CORS 與路由匹配的難題,今天我們正式進入「請求解析」的新階段。 當後端準備接收這些請求時,身為工程師要注意的鐵律就是:「永...
昨天我們將 DTO 改為實際存在於執行期的 class,讓 ValidationPipe 成功攔下格式錯誤的請求。今天我們要面對另一個極度困擾開發者的反直覺陷阱...
接續前兩天對 DTO 類別實例(Day 12)與 ValidationPipe 運作流程(Day 13)的拆解,今天我們進入 API 請求解析中極為常見、也極易...
今天我們把焦點放回一個單純的欄位:文章標題(title)。建立文章時,我們規定標題為必填欄位,但在更新文章(PATCH)時,使用者可能只想更換內文,並不打算修改...
在 NestJS 中處理網址查詢參數時,最棘手的問題往往不是驗證被擋下,而是轉型過程發生偏差,導致系統帶著錯誤的值繼續執行後續邏輯。 特別是傳入 ?isPubl...
昨天我們聊到了查詢參數中「布林值其實只是字串」的坑,揭穿了 TypeScript 型別並無法改變 HTTP 傳輸層的真實資料形狀。今天,我們要接著看另一個延伸問...
順利闖過前幾天對 DTO 驗證、查詢參數陷阱的重重關卡,今天我們來到了「請求解析」階段的終站——「檔案上傳」,這背後藏著一個容易被忽略的記憶體危機。 NestJ...
剛開始在 NestJS 中整合 TypeORM 時,我們通常會先完成資料庫連線,接著建立第一個實體(Entity),並在 Service 中透過 @Inject...
在使用 TypeORM 時,為了圖方便,我們常習慣不論新增或修改,都一律呼叫 save() 來搞定。這種「一招打天下」的寫法雖然順手,卻可能在無意間為資料庫帶來...