2025 最新 NestJS 路由教學:使用 methods() 函數建立靈活的路由系統

學習NestJS路由:使用methods()函數建立路由

NestJS 路由(Routing)是開發者在構建應用時不可或缺的部分。它能夠將不同的請求路徑對應到相應的控制器,從而有效管理程式碼。NestJS 提供了一個簡單且強大的路由系統,讓開發者可以輕鬆地將請求路徑與控制器進行對應。

NestJS 的路由系統基於 Express.js 的路由系統,支持多種 HTTP 方法,如 GET、POST、PUT、DELETE 等,並且能夠處理路由參數,使開發者能夠將請求路徑中的參數傳遞到控制器。

目錄

基本路由設定

在 NestJS 中設定路由非常簡單。您只需在控制器中定義路由,並將請求路徑與控制器方法對應。例如,若要將請求路徑 /users 對應到控制器中的 getUsers 方法,您可以使用以下程式碼:

@Controller('users')
export class UsersController {
  @Get()
  getUsers() {
    // 返回用戶列表的邏輯
  }
}

使用路由參數

NestJS 允許使用路由參數來捕獲請求路徑中的變量。例如,若要將請求路徑 /users/:id 對應到控制器中的 getUser 方法,您可以這樣做:

@Controller('users')
export class UsersController {
  @Get(':id')
  getUser(@Param('id') id: string) {
    // 根據 id 返回用戶的邏輯
  }
}

路由群組的應用

如果您希望將多個相關路由組合在一起以便於管理,可以使用路由群組的功能。例如,您可以將請求路徑 /users/users/:id 對應到控制器中的 getUsersgetUser 方法,如下所示:

@Controller('users')
export class UsersController {
  @Get()
  getUsers() {
    // 返回用戶列表的邏輯
  }

  @Get(':id')
  getUser(@Param('id') id: string) {
    // 根據 id 返回用戶的邏輯
  }
}

錯誤排除與最佳實踐

在使用 NestJS 路由時,以下是一些常見的錯誤以及對應的解決方案:
1. **未正確導入控制器**:確保在模組中正確導入您的控制器。
2. **路由未匹配**:檢查路由定義是否正確,特別是路由參數的名稱。
3. **HTTP 方法錯誤**:確保使用正確的 HTTP 方法,如 GET、POST 等。

延伸應用

NestJS 的路由系統不僅可以用於 RESTful API 的構建,還可以與 WebSocket 等其他技術結合使用,創建實時應用。您可以探索進一步的應用,如使用中介軟體來處理請求或進行認證。

Q&A(常見問題解答)

1. NestJS 路由是如何工作的?

NestJS 路由基於裝飾器的概念,通過在控制器中使用裝飾器來定義路由,系統會自動將請求路徑映射到控制器的方法。

2. 如何處理路由中的錯誤?

可以使用 NestJS 提供的異常過濾器來處理路由中的錯誤,這樣可以統一處理錯誤響應。

3. NestJS 支持哪些類型的請求?

NestJS 支持多種 HTTP 請求類型,包括 GET、POST、PUT、DELETE 等,並且可以為每種請求類型定義不同的路由。

發佈留言