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 메소드로 변수를 불러올 수 있다.