// config.service.ts
import * as dotenv from 'dotenv';
import * as fs from 'fs';
export class ConfigService {
private readonly envConfig: Record<string, string>;
constructor(filePath: string) {
this.envConfig = dotenv.parse(fs.readFileSync(filePath))
}
get(key: string): string {
return this.envConfig[key];
}
}
// config.module.ts
import { Module } from '@nestjs/common';
import { ConfigService } from './config.service';
import { join } from 'path'
@Module({
providers: [
{
provide: ConfigService,
useValue: new ConfigService(join(process.cwd(),`src/dev.env`)),
},
],
exports: [ConfigService],
})
export class ConfigModule {}
// app.module.ts
@Module({
imports: [
RedisModule.forRootAsync({
imports:[ConfigModule],
useFactory: (configService: ConfigService) => {
return { url:configService.get('redis') }
},
inject:[ConfigService]
})
],
controllers: [AppController],
providers: [AppService],
})
网友评论