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