Как выполнить вложенные маршруты в nestjs? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть контроллер (статьи).

Он выполняет маршруты: /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){}

}

1 Ответ

1 голос
/ 17 апреля 2019

Так же, как у вас есть динамический параметр маршрута для идентификатора статьи, вы можете использовать его и для действия:

@Controller('articles')
export class ArticlesController {

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