Search code examples
typescriptnestjs

NestJS Using ConfigService with TypeOrmModule


I set up a ConfigService as described in docs https://docs.nestjs.com/techniques/configuration

How can I use this service with the the TypeOrmModule?

TypeOrmModule.forRoot({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'root',
  database: 'test',
  entities: [__dirname + '/**/*.entity{.ts,.js}'],
  synchronize: true,
}),

Solution

  • See https://docs.nestjs.com/techniques/database#async-configuration Async Configuration chapter

    import { ConfigService } from './config.service'
    import { Module } from '@nestjs/common'
    import { TypeOrmModule } from '@nestjs/typeorm'
    
    @Module({
      imports: [
        TypeOrmModule.forRootAsync({
          imports: [ConfigModule],
          useFactory: (config: ConfigService) => config.get('database'),
          inject: [ConfigService],
        }),
      ],
    })
    export class AppModule {}