Nest - Redis通过config加载初始化

2020-04-15  本文已影响0人  辻子路
// 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],
})
上一篇 下一篇

猜你喜欢

热点阅读