首页 > 文章列表 > Nest.js中嵌套路由:浏览器如何访问?

Nest.js中嵌套路由:浏览器如何访问?

472 2025-02-28

Nest.js中嵌套路由:浏览器如何访问?

在Nest.js中访问嵌套路由

NestJS框架使用模块化设计,路由定义在控制器中。嵌套路由指的是在一个控制器中定义的路由路径,依赖于另一个控制器的路由路径。浏览器访问嵌套路由的方式与普通路由略有不同。

让我们来看一个例子:

假设我们有两个控制器:AppControllerSystemController

// app.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller() // 根路由
export class AppController {
  @Get()
  root(): string {
    return 'Root route';
  }
}
// system.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller('system') // 嵌套路由的父路径
export class SystemController {
  @Get('testindex')
  getTestIndex(): string {
    return 'Test index page';
  }
}

SystemController 使用 @Controller('system') 装饰器,定义了其路由前缀为 /systemgetTestIndex 方法的路由则相对于父路径 /system,因此完整的路由路径为 /system/testindex

要访问getTestIndex 方法,您需要在浏览器中输入以下URL:

http://localhost:3000/system/testindex

关键点:

  • NestJS会自动将父控制器(AppController)的路由前缀与子控制器(SystemController)的路由前缀组合起来。
  • 不要在嵌套路由控制器中重复定义父控制器的路由前缀。 例如,在SystemController中,不要使用 @Controller('/system/system')

通过这种方式,您可以轻松地在NestJS中创建和访问嵌套路由,从而构建更清晰、更易于维护的应用程序。

来源:1740126438