首页 > 解决方案 > NestJS 动态加载类

问题描述

我有几个解析器服务,我想根据条件加载它们。

条件是一个版本,所以如果版本是 1,将加载 Service1 如果版本是 2,将加载 Service2,它继续这种模式。

const version = 1;

// load service class based on version Service1 in this case

我可以使用 switch case 语句根据版本加载确切的服务类,但可能有很多服务类,而且不会很整洁。

有什么办法可以在nestJs中做到这一点?

标签: javascriptangulartypescriptnestjskoa

解决方案


您可以使用类提供者工厂提供者

const serviceProvider = {
  provide: Service,
  useClass:
    version === 1
      ? Service1
      : Service2,
};

@Module({
  providers: [serviceProvider],
})
export class MyModule {}

推荐阅读