我用几个存储库创建了服务:
@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;
}
}
}
数据模块设置:
@Module({
imports: [
TypeOrmModule.forFeature([
ClassicPrices,
ModernPrices
], 'connect'),
],
providers: [DataService],
exports: [DataService]
})
export class DataModule {}
当我在其他模块中使用它时,出现错误“嵌套无法解析DataService的依赖项(connect_ClassicPrices)。请确保在DataModule上下文中索引[2]处的参数connect_ClassicPrices可用。
潜在的解决方案:
@Module({
imports: [ /* the Module containing connect_ClassicPrices */ ]
})
如何导出存储库?
如果要DataModule
在其他模块中使用存储库,则需要在以下位置添加TypeOrmModule
到导出数组DataModule
:
exports: [DataService, TypeOrmModule]
然后,任何导入的模块都DataModule
可以使用在中注册的存储库TypeOrmModule.forFeature
。通常,更好的做法是只导出服务,并将存储库限制在其模块范围内,因为这会使您的应用程序更具模块化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句