NestJS-具有ID的路由返回404

时间:2020-09-29 11:36:57

标签: javascript node.js express nestjs

我是NestJS的新手,所以我显然做错了什么,但无法弄清楚它是什么。

问题:

我刚好在ID和文本之后添加了路由(// id / video),每次尝试对其发出HTTP请求时,都会得到404响应。

在同一控制器中,路由之后没有文字(/:id),这完全正常。

代码:

我的整个控制器看起来像下面的代码。只是提醒控制器在模块中正确使用了控制器,等等,因为其他端点工作正常。
@Controller('channel')
export class ChannelController extends CrudController<Channel> {

constructor(
    private readonly channelService: ChannelService,
    private readonly videoService: VideoService
) {
    super(channelService);
}

@Get()    
async findAll(@Query() params): Promise<Pagination<Channel>> {
    return this.channelService.findAll({take: params.take, skip: params.skip, relations: ['language']});
}

@Get('/:id')
async findOne(@Param('id') id) {
    return this.channelService.findOne({relations: ['language']});
}

@Get('/:id/video')
async findVideosByChannelId(@Param('id') id) {
    return this.channelService.findOne({relations: ['language']});        
}

}

错误:

{"statusCode":404,"message":"Cannot GET /channel/3/video","error":"Not Found"}

欢迎大家提出意见或暗示我做错了什么。

1 个答案:

答案 0 :(得分:2)

就像MorKadosh所说的那样,删除斜线,因为NestJS默认情况下会添加第一个斜线,如果不删除它,最终端点将是这样的:

http://localhost:3000/channel//:id