【发布时间】:2021-01-15 00:26:35
【问题描述】:
我是 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"}
欢迎大家提出想法或提示我做错了什么。
【问题讨论】:
-
去掉斜线即可:
@Get('/:id/video') => @Get(':id/video')
标签: javascript node.js express nestjs