我是NestJS的新手,所以我显然做错了什么,但无法弄清楚它是什么。
在同一控制器中,路由之后没有文字(/: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"}
欢迎大家提出意见或暗示我做错了什么。
答案 0 :(得分:2)
就像MorKadosh所说的那样,删除斜线,因为NestJS默认情况下会添加第一个斜线,如果不删除它,最终端点将是这样的:
http://localhost:3000/channel//:id