NestJS 中同一控制器(路由别名)的两个端点

Vit*_*mud 7 node.js typescript nestjs

我想将实体名称从Person更改为individual。我想保留旧/person端点(为了临时向后兼容)并添加新/individual端点。

使用 Nest 在 Node.js 中执行此操作的最简单方法是什么?

我可以复制代码,但我希望有一个不需要重复的更好的解决方案

Mic*_*evi 16

装饰@Controller()器接受前缀数组,因此您可以像这样使用:

import { Controller, Get } from '@nestjs/common';

@Controller(['person', 'individual'])
export class IndividualController {
  @Get()
  findAll(): { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud)

对我来说这是最简单的方法。

来源


Sai*_*ish 6

在 NestJS 中,我们可以为整个控制器或单个路由设置多个路由。所有 HTTP 方法(POST、GET、PATCH 等)都支持此功能


@Controller(['route-1', 'route-2'])
export class IndividualController {

  @Get(['/sub-route-1','/sub-route-2'])
  public async getSomething(...){...}

Run Code Online (Sandbox Code Playgroud)

所有 HTTP 方法都支持单个字符串路由或字符串路由数组。我们可以使用这种技术来弃用糟糕的路线并开始引入更好的路线,而不会立即破坏消费者。