Nestjs 如何使用存储库导出创建服务?

Nestjs 如何使用存储库导出创建服务?,nestjs,typeorm,Nestjs,Typeorm,我使用几个存储库创建了服务: @Injectable() export class DataService { constructor( @InjectRepository(ClassicPrices, 'connect') private classicPrices: Repository<ClassicPrices>, @InjectRepository(ModernPrices, 'connect') p

我使用几个存储库创建了服务:

@Injectable()
export class DataService {
    constructor(
        @InjectRepository(ClassicPrices, 'connect')
        private classicPrices: Repository<ClassicPrices>,

        @InjectRepository(ModernPrices, 'connect')
        private modernPrices: Repository<ModernPrices>,
    ) {}

    public pricesRepository(server): Repository<ModernPrices | ClassicPrices> {
        switch (server) {
            case 'modern':
                return this.modernPrices;
            case 'classic':
                return this.classicPrices;
        }
    }
}
当我在其他模块中使用它时,^I have error“Nest无法解析数据服务的依赖项(connect\u ClassicPrices)。请确保索引[2]处的参数connect\u ClassicPrices在DataModule上下文中可用

可能的解决办法:

  • 如果connect_ClassicPrices是一个提供程序,它是当前数据模块的一部分吗
  • 如果connect_ClassicPrices是从单独的@模块导出的,则该模块是否在DataModule中导入

如何导出存储库?

如果要在其他模块中使用来自
DataModule
的存储库,需要将
TypeOrmModule
添加到
DataModule
中的导出数组中:

exports: [DataService, TypeOrmModule]

然后,任何导入
DataModule
的模块都可以使用在
TypeOrmModule.forFeature
中注册的存储库。通常,最好只导出服务,并将存储库的范围限制在其模块中,因为这会使您的应用程序更加模块化。

您是否在其他模块中导入
DataModule
是的,我把它添加到模块中
  @Module({
    imports: [ /* the Module containing  connect_ClassicPrices */ ]
  })
exports: [DataService, TypeOrmModule]