본문 바로가기
backend/NestJS

[NestJS] .env를 사용해서 MySQL 연동하기

by BK0625 2023. 3. 9.
반응형

일반적으로 데이터베이스를 연동할 때에 코드에 바로 데이터베이스 정보를 적지 않는다.

 

만약 하드코딩으로 백엔드 코드에 데이터베이스 정보를 집어넣고 실수로 깃허브에 커밋한다거나 유출이 되면 큰 문제가 생길 수 있기 때문이다. 따라서 보통 환경변수로 설정해 관리하곤 하는데 .env 파일을 이용해서 데이터베이스 정보를 환경변수로 설정하고 데이터베이스에 연동하는 방법을 알아보자.

 

먼저 MySQL에 연결하기 위해 사용한 typeorm 라이브러리를 설치하자.

 

 

mysql2를 설치해야 별도의 라이브러리 설치 없이 사용가능하다.

 

.env 파일 생성

 

루트 디렉토리에 .env 파일을 생성한다. 꼭 앞에 .을 붙여야 한다.

 

 

 

 

그 후 .env 파일내에 다음과 같이 데이터 베이스 정보를 적는다.

 

 

appModule 파일

 

 

그리고 다음과 같이 appModule.ts 파일로 와서 다음과 같이 적는다. 이렇게 하면 process.env.* 이 부분이 아까 .env에 설정된 환경변수를 불러와 데이터베이스에 연동된다. 물론 그냥 이 상태에서 서버를 돌리면...

 

 

 

oh no,,,

 

 

 

아직 환경 변수를 불러오지 못한다. 따라서 환경변수를 불러오기 위해서는 nestjs/config로 설정을 해주어야 한다. 먼저 npm i @nestjs/config로 설치를 해준다.

 

 

그리고 다시 appModule.ts 파일로 와서 다음과 같이 설정을 해준다.

 

이렇게 ConfigModule을 import하고 isGlobal을 true로 설정하면 전역변수를 읽어올 수 있다.

 

 

데이터베이스에 잘 연동이 되어 서버가 시작된 것을 확인할 수 있다.

 

 
반응형