重点就是加上configmodule.forRoot放入封装好的database。
import database from './config/configuration';
ConfigModule.forRoot({ isGlobal: true, load: [database] }),
// 使用的时候, 需要异步注入 typeorm 中
TypeOrmModule.forRootAsync({
inject: [ConfigService],
// 这里把database封装在一起不用一个一个去获取了。
useFactory: (config: ConfigService) => config.get('database'),
}), UsersModule, AuthModule
这个databse封装的时候也很特殊,需要用到别名。
configuration.ts
// 可用配置database 起一个别名从后面取到
export default registerAs('database', () => ({
type: process.env.DB_TYPE,
host: process.env.DB_HOST_DEV,
port: parseInt(process.env.DB_PORT, 10),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database:
process.env.NODE_ENV === 'production' // 判断是否是开发环境
? process.env.DB_DATABASE_PRO
: process.env.DB_DATABASE_DEV,
entities: [join(__dirname, '../', '**/**.entity{.ts,.js}')],
// __dirname + '/**/*.entity{.ts,.js}'
synchronize: false,
timezone: '+08:00',
// cache: {
// duration: 60000,
// },
// extra: {
// poolMax: 32,
// poolMin: 16,
// queueTimeout: 60000,
// pollPingInterval: 60,
// pollTimeout: 60,
// }
}));
官网去看看,
https://docs.nestjs.com/techniques/configuration