You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:36:28