1. dotenv 실행 순서
1) dotenv를 설치한다.
npm i dotenv —save
2) 보안이 담긴 값들을 담은 .env파일을 만든다
3) 서버 실행 시 가장 먼저 실행되는 파일(index.js나 app.js)에 env를 가져오는 명령어를 입력(두가지 상황)
(1) 단일 상황에 대한 보안값을 담은 단일 파일 .env이면
require('dotenv').config();
(2) 몇가지의 상황(개발 or 배포)에 대한 보안값을 담은 몇개의 파일로 나뉘어 있다면(prod.env, dev.env)ㅋ
if(process.env.NODE_ENV === 'production') {
require('dotenv').config({ path: path.join(__dirname, '/env/server.env') });
console.log('production mode');
console.log(process.env.API_URL);
} else {
// dotenv.config({ path: path.join('/env', './local.env')});
require('dotenv').config({path: path.join(__dirname, '../env/local.env')});
console.log('development mode');
console.log(result);
}
(3) env 파일의 내용을 사용하는 config파일에서 env파일에 들어있는 값들을 사용한다.
- 프로젝트 실행 시 가장 먼저 실행되는 파일(index.js나 app.js)에서 지정된 env파일불러 환경변수에 그 값들을 올려놨기 때문에
process.env.[보안값의 키]
를 통해 해당 보안 값을 불러와 배치한다.
2. 이틀동안 헤맸던 부분
1) 이름이 붙은 env파일(prod.env 같은)을 프로젝트 시작파일에서 불러올 때
require('dotenv').config();
가 아닌
require('dotenv').config({ path: path.join(__dirname, '/env/server.env') });
이렇게 불러와야 한다.
2) dotenv를 사용하기 전 dbConfig파일에 직접적으로 사용하고 있던 보안값들을
복붙
해서 ' : ' 부분만 ' = '으로 바꾸고 env파일을 만들었는데
항상 env파일의 첫번째 줄만 읽고 다머지 값들은 읽어오지 못하고
env를 require해주고 있던 index.js의 나머지 명령들을 읽지 못하는 문제가 생겼다.
결국 찾아낸 것은,
내가 만든 env파일인 prod.env를
복붙이 아닌 새로 타이핑해서 입력해주었더니
정상적으로 값들이 config파일에서 읽혀올 수 있었다.
3) env파일은 키 : 값 이 아닌
키 = "값"
형태로 값들을 입력해야 나중에 등록, 읽어올 수 있다.
반응형
'인포테인먼트 - development > node.js' 카테고리의 다른 글
[npm] npm install 중 ../../nan/nan_object_wrap.h:24:25: error: no member named 'IsNearDeath' 에러 해결 (0) | 2021.04.13 |
---|---|
[node.js] g suite 계정에 nodeMailer 적용 (0) | 2020.04.27 |
[node.js] 이해가 어려웠던 카카오 로그인 박살내기 (8) | 2020.04.23 |
[Node.js] pm2 무중단 서비스 구현 (0) | 2020.04.20 |
[node.js] MYSQL 쿼리문 여러개(다중쿼리) 전송방법 (2) | 2020.03.30 |
댓글