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,
],
})
回复
1个回答
test
2024-06-27
@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 {}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容