所需依赖
pnpm i @nestjs/typeorm mysql2 typeorm
目录结构
|- config
| |- config.yaml
|- src
| |- common
| |- database.module.ts
| |- app.module.ts
涉及文件
1、config.yaml
database:
host: '127.0.0.1'
port: 3306
username: 'root'
password: 'root123456'
database: 'nestdb'
synchronize: false
2、database.module.ts
import { Module } from '@nestjs/common'
import { ConfigService } from '@nestjs/config'
import { TypeOrmModule } from '@nestjs/typeorm'
@Module({
imports: [
TypeOrmModule.forRootAsync({
useFactory(configService: ConfigService) {
return {
type: 'mysql',
host: configService.get<string>('database.host', '127.0.0.1'),
port: configService.get<number>('database.port', 3306),
username: configService.get<string>('database.username', 'root'),
password: configService.get<string>('database.password', '123456'),
database: configService.get<string>('database.database', 'nestdb'),
synchronize: configService.get<boolean>('database.synchronize', false),
autoLoadEntities: true,
timezone: '+08:00',
reconnect: true,
retryDelay: 5 * 1000,
maxQueryExecutionTime: 3 * 1000,
retryAttempts: 10,
poolSize: 10,
charset: 'utf8mb4_unicode_ci',
}
},
inject: [ConfigService],
}),
],
})
export class DatabaseModule {}
3、app.module.ts
import { Module } from '@nestjs/common'
import { DatabaseModule } from './common/module/database.module'
@Module({
imports: [DatabaseModule]
})
export class AppModule {}