NestJS - 控制器 - Get(':id') 返回 404

Posted

技术标签:

【中文标题】NestJS - 控制器 - Get(\':id\') 返回 404【英文标题】:NestJS - Controller - Get(':id') returned 404NestJS - 控制器 - Get(':id') 返回 404 【发布时间】:2021-08-23 08:34:25 【问题描述】:

我的 orders.controller.ts 文件中有以下代码:

@Controller('orders')
export class OrdersController 
  constructor(private ordersService: OrdersService) 

  @Get(':id')
  async getOrderById(@Param('id', ParseIntPipe) id: number): Promise<Order> 
    return this.ordersService.getOrderById(id);
  

我想使用以下 url 测试 Get(':id') 路由:http://localhost:3000/orders?id=1

但我仍然有 404 错误:


     "statusCode": 404,
     "message": "Cannot GET /orders?id=1",
     "error": "Not Found"

【问题讨论】:

应该是@Controller(/orders) 和@Get(/:id) @CharchitKapoor 您的解决方案不起作用 对不起,您的请求 url 应该是 /orders/1 我一定是累了……非常感谢! 【参考方案1】:

处理GET /orders?id=1:

@Controller('orders')
export class OrdersController 
  constructor(private ordersService: OrdersService) 

  @Get()
  async getOrderById(@Query('id') id?: string): Promise<Order> 
    return this.ordersService.getOrderById(id);
  

否则您应该发出GET /orders/1 请求。

【讨论】:

以上是关于NestJS - 控制器 - Get(':id') 返回 404的主要内容,如果未能解决你的问题,请参考以下文章

如何使用@nestjs/axios 发出 api Get 请求

NestJS“获得”多个参数

NestJS - 从 Guard 访问用户

NestJS:如何在@Query 对象中转换数组

Nestjs 是不是支持同时在操作上获取和发布?

使用 NestJS 服务单元测试未找到连接“默认”