nest Typeorm 如何在某个service的onModuleInit进行数据库操作?

有这么一个service,需要在onModuleInit方法里对数据库的表进行操作,但是 onModuleInit 一直无法触发,就算在main.ts里手动触发 onModuleInit 方法也没法拿到 detailRepository 实例,请问要如何解决,或者有什么方式可以实现这个场景吗?
test.service.ts 代码如下

export class TestService implements OnModuleInit {
  constructor(
    @InjectRepository(detail)
    private detailRepository: Repository<detail>,
  ) {}

  onModuleInit() {
    console.log(
      'onModuleInit: this.detailRepository',
      this.detailRepository,
    );
  }
}

test.module.ts 代码如下

@Module({
  imports: [TypeOrmModule.forFeature([Detail])],
  controllers: [TestController],
  providers: [TestService, Response],
})
export class TestModule {}

app.module.ts 代码如下

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      ...config,
      entities: [Detail],
    }),
    TestModule,
  ],
  controllers: [AppController],
  providers: [
    AppService,
  ],
})
阅读 3.1k
1 个回答
@Module({
  imports: [TypeOrmModule.forFeature([Detail])],
  providers: [TestService],
})
export class TestModule {}
@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      ...config,
      entities: [Detail],
    }),
    TestModule,
  ],
  controllers: [AppController],
  providers: [
    AppService,
  ],
})
export class AppModule {}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题