NestJS 使用 ConfigService 和 TypeOrmModule

Posted

技术标签:

【中文标题】NestJS 使用 ConfigService 和 TypeOrmModule【英文标题】:NestJS Using ConfigService with TypeOrmModule 【发布时间】:2019-03-05 07:54:49 【问题描述】:

我按照文档https://docs.nestjs.com/techniques/configuration 中的描述设置了一个 ConfigService

如何通过 TypeOrmModule 使用此服务?

TypeOrmModule.forRoot(
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'root',
  database: 'test',
  entities: [__dirname + '/**/*.entity.ts,.js'],
  synchronize: true,
),

【问题讨论】:

【参考方案1】:

参见https://docs.nestjs.com/techniques/database 异步配置章节

import ConfigService from './config.service';
import Module from '@nestjs/common';
import TypeOrmModule from '@nestjs/typeorm';

@Module(
    imports: [
        TypeOrmModule.forRootAsync(
            imports: [ConfigModule],
            useFactory: (config: ConfigService) => config.get('database'),
            inject: [ConfigService],
        ),
    ],
)
export class AppModule 

【讨论】:

至少需要进行一些更改才能使其对我有用:1. import ConfigModule, ConfigService from '@nestjs/config'; 2. 导入:[ConfigModule.forRoot()], @Kevin 没错!【参考方案2】:

如果您想使用配置类ConfigService,请使用useClass 并提供TypeOrmConfigService

import  Module  from '@nestjs/common';
import  TypeOrmModule  from '@nestjs/typeorm';
import  ConfigModule  from './config/config/config.module';
import  TypeOrmConfigService  from './config/typeorm.config';
import  ConfigService  from './config/config/config.service';

@Module(
  imports: [
    ConfigModule,
    TypeOrmModule.forRootAsync(
      imports: [ConfigModule],
      useClass: TypeOrmConfigService,
      inject: [ConfigService],
    ),
  ],
)
export class AppModule 

TypeORM 集成文档:https://docs.nestjs.com/techniques/database#async-configuration

配置:https://docs.nestjs.com/techniques/configuration#using-the-configservice

【讨论】:

以上是关于NestJS 使用 ConfigService 和 TypeOrmModule的主要内容,如果未能解决你的问题,请参考以下文章

如何通过传入具有自定义值的 ConfigService 来测试 nestjs 服务?

NestJs TypeORM 配置使用 AWS Parameter Store

Nestjs 单元测试 - 模拟方法守卫

NestJS JWT 策略需要一个秘密或密钥

Apollo 7 — ConfigService 消息扫描设计实现

Apollo 8 — ConfigService 异步轮询接口的实现