iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Modern Web

《NestJS 絕地求生手冊》:我用一年血淚換來的實戰排雷筆記 系列

《NestJS 絕地求生手冊》整理一年來從 Angular 前端轉向 NestJS 後端開發時實際踩過的坑。系列將依問題發生階段,從 DI、Module、DTO 驗證、型別轉換、TypeORM,到 Interceptor、Exception Filter 與 Swagger,拆解 30 個常見但容易卡關的情境。這不是從零教學,而是一份面向實戰的排雷筆記,希望幫助開發者更快定位問題、理解 NestJS 的運作方式,少走一點冤枉路。

參賽天數 26 天 | 共 26 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21|悄悄崩潰的效能:Lazy Loading 如何讓 N+1 藏進屬性存取裡

你在開發時是不是曾遇到這種狀況:API 在本機測試時都很流暢,一旦上了正式環境,回傳時間就從毫秒暴增成好幾秒? 打開資料庫 log 一看,發現原本只是想查使用者...

2026-10-05 ‧ 由 YUN 分享
DAY 22

Day 22|消失的筆數:為什麼 TypeORM 做了 JOIN 後,分頁筆數總是對不上?

在開發 API 時,若實體之間定義了關聯,我們經常會使用 relations 或 leftJoinAndSelect() 來一次性載入相關聯的資料。 然而,當這...

2026-10-06 ‧ 由 YUN 分享
DAY 23

Day 23|消失的回滾:ROLLBACK 了資料卻還在?別讓預設的 Repository 偷溜出去

當一段商業邏輯需要同時修改多筆資料時,我們通常會使用資料庫交易(Transaction),確保操作要不全部生效,要不全部回滾。於是你把一系列操作包進 dataS...

2026-10-07 ‧ 由 YUN 分享
DAY 24

Day 24|脫離掌控的回應:為什麼用了 @Res(),Interceptor 的轉換結果不見了?

在開發 NestJS 時,為了統一 API 回傳格式,團隊通常會註冊全域 Interceptor,建立一致的回應結構。原本 API 都依循這個規則,直到某次為了...

2026-10-08 ‧ 由 YUN 分享
DAY 25

Day 25|失效的防護:明明加了 @Exclude(),為什麼 API 還是洩漏敏感資料?

在開發 NestJS API 時,我們常需要替回應加上防護機制,確保不會不小心曝光資料庫裡的敏感欄位。假設我們剛完成了一支取得個人檔案的 API,測試時前端順利...

2026-10-09 ‧ 由 YUN 分享
DAY 26

Day 26|消失的全域防線:為什麼加了局部 Filter 後,Global Exception Filter 就不再觸發?

團隊在 NestJS 中建立了 Global Exception Filter,希望統一處理 API 錯誤,包括格式化回應、隱藏內部錯誤訊息等。原本其他 Con...

2026-10-10 ‧ 由 YUN 分享