Nx NestJs - 환경 변수와 Typeorm 데이터베이스 연결
9575 단어 webdevjavascripttutorialnestjs
이 경우 데이터베이스 연결을 설정하려면 몇 줄의 코드만 있으면 됩니다.
내 예에서는 PostgreSQL 데이터베이스를 사용하지만 모든 유형의 데이터베이스가 될 수 있습니다.
npm install --save @nestjs/typeorm [email protected] pg
를 설치합니다. pg
는 Typeorm이 데이터베이스에 연결하는 데 사용하는 Postgresql 드라이버입니다. 개별 데이터베이스마다 다른 드라이버가 됩니다. sql2
, mongoose
및 기타. 우리가 설치한 typeorm은 v0.3입니다. nestJs 문서에서는 v0.2를 사용하는 것이 좋지만 호환 가능하고 최신 버전입니다. 마음에 들지 않으면 v0.2를 사용할 수 있습니다. typeorm
파일이 있는 typeorm.service.ts
폴더를 만듭니다. import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
import { IEnvironment } from './../environments/env.interface';
@Injectable()
export class TypeOrmConfigService implements TypeOrmOptionsFactory {
constructor(private config: ConfigService) {}
public createTypeOrmOptions(): TypeOrmModuleOptions {
const db = this.config.get<IEnvironment['database']>('database') as IEnvironment['database'];
const productionMode = this.config.get<IEnvironment['production']>('production') as IEnvironment['production'];
return {
type: 'postgres',
host: db.host,
port: db.port,
database: db.database,
username: db.username,
password: db.password,
// migrations: ['dist/migrations/*.{ts,js}'],
logger: 'file',
synchronize: !productionMode, // never use TRUE in production!
autoLoadEntities: true,
};
}
}
이에 대한 특별 언급:
이제 남은 것은 AppModule에서 이 클래스를 사용하는 것입니다(또는 보다 세분화된 접근 방식을 원할 경우 별도의 DatabaseModule).
app.module.ts
로 이동하여 가져오기TypeOrmModule.forRootAsync({ useClass: TypeOrmConfigService })
를 추가합니다.예를 들어 내 app.module.ts는 다음과 같습니다.
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { getEnvConfig } from './environments/env-config';
import { envValidation } from './environments/env-validator';
import { TypeOrmConfigService } from './typeorm/typeorm.service';
@Module({
imports: [
ConfigModule.forRoot({
load: [getEnvConfig],
isGlobal: true,
cache: true,
validate: envValidation,
}),
TypeOrmModule.forRootAsync({ useClass: TypeOrmConfigService })
],
controllers: [],
providers: [],
})
export class AppModule {}
그게 다야, 다음 단계는 모델과 서비스를 만드는 것입니다. 이에 대한 좋은 문서는 here입니다.
읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Nx NestJs - 환경 변수와 Typeorm 데이터베이스 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ipreda/nx-nestjs-typeorm-database-connection-with-environment-variables-1na6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)