TypeORM setup 과 Nestjs Config
728x90
postgresql 을 사용할 것이고 postgresql 이 설치되어 있따는 가정하에 진행 합니다.
실행 환경은 MAC OS 입니다.
nestjs 에서 typeorm 을 사용하기 위해서 다음과 같이 설치합니다.
npm i --save @nestjs/typeorm typeorm pg
app.module.ts
import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { GraphQLModule } from '@nestjs/graphql'; import { TypeOrmModule } from '@nestjs/typeorm'; import { RestaurantsModule } from './restaurants/restaurants.module'; @Module({ // Graphql 의 root 모듈을 설정 imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: process.env.NODE_ENV === 'dev' ? '.env.dev' : '.env.test', // production 환경일 때는 configModule이 환경변수 파일을 무시합니다. ignoreEnvFile: process.env.NODE_ENV === 'prod', }), TypeOrmModule.forRoot({ type: 'postgres', host: process.env.DB_HOST, port: parseInt(process.env.DB_PORT), username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, // typeorm 이 db에 연결할때 데이터베이스를 모듈의 현재 상태로 마이그레이션 한다는 synchronize: true, logging: true, }), RestaurantsModule, GraphQLModule.forRoot({ // autoSchemaFile: join(process.cwd(), 'src/schema.gql'), // 경로에 gql 파일을 생성 autoSchemaFile: true, // 메모리가 파일을생성하도록 설정 }), ], controllers: [], providers: [], }) export class AppModule {}
ConfigModule 과 TypeOrmModule 이 추가되었습니다.
TypeOrmModule
TypeOrmModule 의 forRoot 에서 postgres 의 host, port, username 등의 정보를 입력합니다.
synchronize 의 옵션은 typeorm 이 db에 연결할때 데이터베이스를 모듈의 현재 상태로 마이그레이션 한다는 뜻입니다.
product 환경과 dev, test 환경을 각각 구성해주기 위해서 .env 파일을 사용합니다.
Nestjs 에서는 .env 파일 최상위에서 실행되는 nestjs config 를 사용할게요
가상 변수를 설정하기위해 cross-env도 설치합니다.
npm i --save @nestjs/config npm i cross-env
.env.dev, .env.prod, .env.test 파일을 만든뒤 package.json 으로 이동합니다.
"start": "cross-env NODE_ENV=prod nest start", "start:dev": "cross-env NODE_ENV=dev nest start --watch",
test 환경은 제외한 product 와 dev 를 설정 입니다.
cross-env 는 MACOS Linux window 에서 모두 돌아가게 하기 위함이고 NODE_ENV는 process.env.NODE_ENV
를 사용하기위한 변수 입니다.
ConfigModule.forRoot({ isGlobal: true, envFilePath: process.env.NODE_ENV === 'dev' ? '.env.dev' : '.env.test', // production 환경일 때는 configModule이 환경변수 파일을 무시합니다. ignoreEnvFile: process.env.NODE_ENV === 'prod', }),
그런뒤 ConfigModule 을 셋업 하면 정상적으로 서버가 실행됩니다.
npm run start:dev
728x90
이 글은
(새창열림)
본 저작자 표시 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
Creative Commons
본 저작자 표시
'Side > uber-eats' 카테고리의 다른 글
Nestjs - User model (0) | 2021.06.01 |
---|---|
Nestjs - Typeorm Repository 사용하기 (0) | 2021.05.31 |
NestJs Validating ArgsTypes (0) | 2021.05.23 |
Nestjs - InputTypes and ArgumentTypes (0) | 2021.05.22 |
NestJs - Arguments (0) | 2021.05.22 |
댓글
이 글 공유하기
다른 글
-
Nestjs - User model
Nestjs - User model
2021.06.01 -
Nestjs - Typeorm Repository 사용하기
Nestjs - Typeorm Repository 사용하기
2021.05.31 -
NestJs Validating ArgsTypes
NestJs Validating ArgsTypes
2021.05.23 -
Nestjs - InputTypes and ArgumentTypes
Nestjs - InputTypes and ArgumentTypes
2021.05.22
댓글을 사용할 수 없습니다.