nestjs中有多个全局前缀

nestjs中有多个全局前缀,nestjs,Nestjs,从'@nestjs/core'导入{NestFactory} 从“./app.module”导入{AppModule} 异步函数引导(){ const app=wait NestFactory.create(AppModule) 附录setGlobalPrefix(“v1”) 附件setGlobalPrefix(“v2”) 等待应用程序。聆听(3000) } bootstrap() 我想要两个版本的API,所以想知道如何设置两个全局前缀?据我所知,您不能使用setGlobalPrefix来实现这

从'@nestjs/core'导入{NestFactory}

从“./app.module”导入{AppModule}

异步函数引导(){

const app=wait NestFactory.create(AppModule)

附录setGlobalPrefix(“v1”)

附件setGlobalPrefix(“v2”)

等待应用程序。聆听(3000)

}

bootstrap()


我想要两个版本的API,所以想知道如何设置两个全局前缀?

据我所知,您不能使用
setGlobalPrefix
来实现这一点,也不支持上面提到的方法。但您可以为每个版本创建两个控制器,并在其中设置基本路径:

@Controller('/v1')
export class ApiControllerV1 {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

@Controller('/v2')
export class ApiControllerV2 {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

您可以通过使用
NestFactoryStatic
初始化一个工厂,通过调用
setGlobalPrefix
设置此工厂的全局前缀,并通过调用
init
方法初始化来创建单个工厂

下面是一个关于如何执行此操作的示例,来源于:

异步函数引导(){
const server=express();
const config=require('../../etc/config.js');
const apiFactory=new NestFactoryStatic();
const api=wait apiFactory.create(apimule,server);
api.setGlobalPrefix(“/api/v1”);
等待api.init();
const adminFactory=new NestFactoryStatic();
const admin=wait adminFactory.create(AdminModule,服务器);
admin.setGlobalPrefix(“/admin”);
等待admin.init();
http.createServer(server.listen(config.server.port);
}
bootstrap();

@Gaurav:有什么反馈吗?