Nest - Redis通过config加载初始化

// 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],
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容