如何处理 NestJS @Get() 装饰器?

How to deal with NestJS @Get() decorator?

这段代码工作正常。我可以使用 URL 访问这两个功能 http://localhost:3000/vehicle/availableVehicles & http://localhost:3000/vehicle/1 相应地

    @Controller('vehicle')
    export class VehicleController {
        constructor(
            private readonly vehicleService: VehicleService,
            private readonly crudService: CurdService
        ) { }
        tableName: string = 'vehicle';
    
        @Get('availableVehicles')
        async availableVehicles() {
            return await this.vehicleService.availableVehicles();
        }
        
        @Get(':id')
        async getbyId(@Req() request: Request) {
            return await this.crudService.getById(this.tableName, request.params.id);
        }
  }

但是当我只是在下面的代码块之类的 2 个函数之间交换时,函数 availableVehicles() 不起作用并且 URL http:/ /localhost:3000/vehicle/availableVehicles 命中 getbyId() 函数。该怎么办?或者我做错了什么? 在此先感谢。

    @Controller('vehicle')
    export class VehicleController {
        constructor(
            private readonly vehicleService: VehicleService,
            private readonly crudService: CurdService
        ) { }
        tableName: string = 'vehicle';

        @Get(':id')
        async getbyId(@Req() request: Request) {
            return await this.crudService.getById(this.tableName, request.params.id);
        }
    
        @Get('availableVehicles')
        async availableVehicles() {
            return await this.vehicleService.availableVehicles();
        }
  }

您只需完全按照第一个示例中的操作,将更具体的路由放在采用路由参数的路由之上。

当服务器的路由 table 在应用程序启动时构建时,它们将按此顺序被发现和注册。

这是

的副本