Search

#043 #데이터베이스 세팅

 CLI 명령어

pnpm i @nestjs/config joi @nestjs/typeorm typeorm pg
JavaScript
복사
해당 명령어로, 환경변수 사용 세팅과 검증 그리고 nest에서 사용할 typeorm을 사용하게 한다.

 .env 설정

.env 파일은 Nest에서 자동으로 환경변수로 인식하는 파일명이기 때문에 왠만하면 그대로 사용하자
개발환경과 배포환경을 나누어서, 개발환경에서는 영속화 되지않게 세팅하는 synchronize 를 사용할 수 있다. 아래에서 더 자세하게 살펴보자.
전역적으로 사용하는 환경변수는 항상 대문자로 지정하자.

 appModule 설정

전체 코드
ConfigModule을 임포트 해야 환경변수 사용가능
TypeOrmModule을 forRoot로 연결해서 프로젝트가 시작될 때 데이터 베이스 연결
type 속성에는 데이터베이스 종류 입력
host 에는 데이터 베이스 호스트 → 개발환경 localhost
port 에는 설정한 포트 → 현재는 5555로 사용
username, password, database 는 설정한 대로
entities는 현재 프로젝트에서 직렬화해서 사용할 객체등록
synchronize는 프로젝트가 재시작될때 객체와 상태가 동기화 되어 db가 세팅이 됨. 데이터가 초기화가 된다는 뜻

Joi 검증

ConfigModule 코드
Joi를 named import한다.
.valid()로 문자열을 검증할 수 있다.
.string() / .number() 로 타입을 검증할 수 있다.
.required()로 null이나 비어있는 값은 허용하지 않는다.

 TypeOrmModule.forRootAsync

전체 코드
typeOrmModule.forRootAsync를 사용하게 되면, 다른 설정이 먼저 로드가 된후 비동기적으로 실행하게 된다.
ConfigService를 주입해서 .get 메소드로 변수를 불러올 수 있다.