NestJS如何导出自定义Factory Provider(useFactory)?
解决NestJS自定义TypeOrm仓库Provider的导出问题
你只需要把自定义仓库Provider的provide值直接放到exports数组里就行,也就是getRepositoryToken(TypeOrmUser)——这是你定义这个Provider时用的标识,其他模块注入时也是用这个标识来获取实例的。
修改后的代码如下:
@Module({ imports: [TypeOrmModule.forFeature([TypeOrmUser])], providers: [ UserMapper, UserService, { provide: getRepositoryToken(TypeOrmUser), inject: [getDataSourceToken()], useFactory(dataSource: DataSource) { return dataSource.getRepository(TypeOrmUser).extend(userRepositoryImpl); }, }, ], exports: [UserService, getRepositoryToken(TypeOrmUser)], }) export class UsersModule {}
这样其他模块在导入UsersModule后,就能通过@Inject(getRepositoryToken(TypeOrmUser))来注入你自定义的仓库实例了。
内容的提问来源于stack exchange,提问作者user2490936
相关产品推荐
相关产品推荐

