-
.env 파일 안 환경변수들이 안 불러와질 때Problem-Solving 2022. 1. 24. 17:07
< 문제상황 >
- pg 라이브러리를 이용해 서버와 postgresSQL 데이터베이스 연결
db.js 파일 : user, password, host등 민감한 정보는 .env 파일에 저장 후 이용함
=> 서버 실행 후 Postman에서 POST메소드를 실행하니 콘솔에 "이상훈" ��(role) ���� 이라는 오류메시지 출력되면서 서버의 response가 돌아오지 않는 문제 발생!
콘솔창
< 접근 1 >
POST메소드에만 오류가 나는지, 아니면 GET이나 PUT등의 메소드에도 오류가 나는지 확인
- GET과 PUT역시 서버 실행 후 Postman에서 요청을 보내보니 똑같이 무한 요청 및 "이상훈" ��(role) ���� 오류메시지 출력
무한요청 콘솔 오류메시지 => 메소드 문제가 아니라 서버 및 데이터베이스 문제
< 접근 2 >
dotenv를 이용해 환경변수(.env)에 접근해 내용을 가져올 때 제대로 안가져와져서 데이터베이스 연결 시 오류가 생기는 거라고 생각
- db.js 파일 안에 console.log(process.env) 메소드를 이용해 환경변수에 있는 내용들 확인
db.js 파일 : 출력 내용을 확인해보니 내가 .env 파일 안에 저장해놓은 내용이 없는 것을 확인
=> .env 파일 및 dotenv 모듈을 잘못 사용하고 있다는 점을 확인!
< 접근 3 >
.env 사용방법 및 실제 사용사례들을 보면서 내 코드와 다른점을 하나씩 확인
참고한 글 :
dotenv로 환경 변수 관리하기
Engineering Blog by Dale Seo
www.daleseo.com
.env 환경 변수
DB connection, API Key의 경우 SCM(source code management)를 사용하는 경우, 비밀 정보가 노출되므로 별도의 행위가 필요하다.배포시 cmd으로 config 변경 가능express에서는 NODE_ENV라는 환경변수를 통해 개발환
velog.io
.env 파일 사용방법을 공부하며 정리한 내용 :
- dotenv 라이브러리 설치
- 프로젝트 루트 경로에 .env 파일 만들기 및 .gitignore 파일에 추가
- .env 파일 작성
- 애플리케이션을 구동할 때 제일 먼저 실행되는 자바스크립트 파일(ex. index.js, main.js)의 최상위에 다음과 같이 dotenv 라이브러를 임포트한 후 config() 함수를 호출
- process.env.[만든환경변수] 를 이용해 .env 파일에 있는 내용에 접근 및 사용
개인적으로 공부를 하며 한가지 걸리는 점이 있었는데 .env 파일을 프로젝트의 루트 디렉토리가 아닌 다른 곳에 만들었다는 점이었다.
: 프로젝트를 client 와 server폴더로 나누고 작업하고 있었고, .env파일 안에 있는 환경변수를 사용하는 건 백엔드 쪽이니 .env 파일을 server폴더 안에 만들었다.
그래서 .env 파일을 프로젝트의 최상위 디렉토리에 위치시키고 Postman에서 POST메소드를 보내보았다.
Postman 결과 결과를 보니 응답도 잘 오고 콘솔창에도 에러 메시지가 발생하지 않았다.
+. .env 파일을 프로젝트의 최상위 디렉토리에 위치시킨다는 것에서 최상위 디렉토리란, 프로그램이 실행될 때의 최상위 디렉토리를 말하는 것이므로 .env 파일의 위치를 옮기지 않고 단지 server폴더에서 서버를 실행시켜도 정상작동하는 것을 확인할 수 있었다.
: server폴더 안에서 server 실행 및 GET요청 보냈을 경우
'Problem-Solving' 카테고리의 다른 글
AWS : ELB를 이용한 HTTPS 구현 (0) 2022.03.28 HTTP Request의 query로 온 배열을 이용해 필터링 할 때 (0) 2022.03.25 카카오 맵 API 실행 안되는 경우 (0) 2022.03.18 AWS : EC2 서버실행 오류 (1) 2022.03.07 AWS : EC2 서버에 연결되지 않을 경우 (1) 2022.03.02