【问题标题】:How to perform nested routes in nestjs?如何在nestjs中执行嵌套路由?
【发布时间】:2019-04-16 21:19:08
【问题描述】:

我有一个控制器(文章)。

它执行路由:/articles/articles/:id,就是这样。

我还需要以下路线 - /articles/creator/:creatorId/articles/:id/like/articles/:id/unlike/articles/:id/comment 等等。

无论我需要静态路径还是动作,它都是嵌套的并且不起作用。

我的部分解决方案 - 控制器(文章),控制器(文章/创建者),控制器(文章/喜欢),控制器(文章/不喜欢)。

但这是一个愚蠢的解决方案,并且丢失了路径和动作的概念。

有没有优雅的解决方案来解决这个问题?以及如何以最佳方式实现这一目标?

代码:

@Controller('articles')
class ArticlesController{

@Get(':articleId')
getById(@Param('articleId') articleId){}

@Post(':articleId/like)
like(@Param('articleId') articleId){}

@Get('creator/:creatorId')
getByCreator(@Param('creatorId') creatorId:string){}

}

【问题讨论】:

  • 请在您的问题中包含您代码的相关部分。 (在这种情况下是您的控制器。)它使回答您的问题更容易。 :-)

标签: javascript node.js typescript nestjs


【解决方案1】:

就像文章 id 有一个动态路由参数一样,您也可以有一个用于操作的参数:

@Controller('articles')
export class ArticlesController {

  @Get(':id/:action')
  findAll(@Param('id') id, @Param('action') action) {
    return `You chose ${action} for article ${id}`;
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-12
    • 2018-10-30
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2021-01-02
    • 2019-01-22
    相关资源
    最近更新 更多