我要将实体名称从Person变更为Individual。我要保留旧的/person端点(为了暂时回溯相容性),并新增/individual端点。在Node.js中使用Nest进行此操作的最简单方法是什么?我可以复制代码,但我希望有一个更好的解决方案,不需要重复
/person
/individual
ev7lccsx1#
@Controller()装饰器接受一个前缀数组,因此你可以像这样使用:
@Controller()
import { Controller, Get } from '@nestjs/common'; @Controller(['person', 'individual']) export class IndividualController { @Get() findAll(): { /* ... */ } }
对我来说这是最简单的方法。来源
rkkpypqq2#
如果您指的是expressjs而不是jestjs(它是一个测试框架),我的方法将如下:只需将控制器代码排除到函数中并将其传递给路由。
expressjs
jestjs
// your controller code const doSomethingWithPersonEntity = (req, res, next) => { res.status(200).json(persons); } router.get("/person", doSomethingWithPersonEntity); router.get("/individual", doSomethingWithPersonEntity);
nuypyhwy3#
在NestJS中,我们可以为整个控制器或单个路由设置多个路由。这支持所有HTTP方法(POST、GET、PATCH等)
@Controller(['route-1', 'route-2']) export class IndividualController { @Get(['/sub-route-1','/sub-route-2']) public async getSomething(...){...}
所有的HTTP方法都支持单个字符串路由或字符串路由数组。我们可以使用这种技术来弃用一个坏的路由,并开始引入一个更好的路由,而不会立即破坏消费者。
3条答案
按热度按时间ev7lccsx1#
@Controller()
装饰器接受一个前缀数组,因此你可以像这样使用:对我来说这是最简单的方法。
来源
rkkpypqq2#
如果您指的是
expressjs
而不是jestjs
(它是一个测试框架),我的方法将如下:只需将控制器代码排除到函数中并将其传递给路由。
nuypyhwy3#
在NestJS中,我们可以为整个控制器或单个路由设置多个路由。这支持所有HTTP方法(POST、GET、PATCH等)
所有的HTTP方法都支持单个字符串路由或字符串路由数组。我们可以使用这种技术来弃用一个坏的路由,并开始引入一个更好的路由,而不会立即破坏消费者。