0

我想完全覆盖控制器路由。例如:

@Controller('shipments')
export class ShipmentsController {

  @Post('/create')
  async find(): Promise<Activities> {
    return service.find()
  }
}

为了向前面的示例发出请求,URL 将是:http://localhost:8080/shipments/create

我想在不将控制器移动到另一个类的情况下更改该 URL。例如,我希望该特定函数的 URL 为 http://localhost:8080/whatever/i/want。

这可能吗?

4

1 回答 1

2

这是不可能的,并且违背了易于配置具有结构和一致性的路由的框架的想法。如果您想要这样的路线,您可以在其上使用 express;或者在技术上像这样在引导文件中添加路线

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.getHttpServer().get('/whatever/you/want', (req, res, next) => {});
  await app.listen(3000);
}

但是现在您无法(轻松)访问服务,测试这是一种痛苦,而且通常会令人困惑,更不用说没有使用任何 Nest 增强器,如拦截器或管道。

于 2021-01-08T22:19:46.510 回答