실행하고 싶은 모드에 따라 다른 .env 파일을 반영

 

일단 실행하는 방법은 app.js 를 실행 시킬때 argument 를 제공하는 방식을 선택

$ node app.js local

$ node app.js product

 

그 후 주어진 argument에 따라 어떻게 .env 파일을 구성할 것인가에 대해서는 

아래 두가지를 생각해보았다.

1. 변수들을 다른 파일에 기록하여 호출하기

설정해둔 값을 실행하고자는 환경에 따라 다르게 반영이 가능하다고 생각하여

 

const dotenv = require('dotenv');
const env = process.argv[2] || 'local';
dotenv.config({ path: `.env.${env}` });
console.log(`Start ${process.env.APP_ENV} mode`);

 

2. 하나의 파일에 기록하고 변수들의 앞부분에 구분되는 문자를 넣기

LOCAL_DB_HOST='local'
PRODUCT_DB_HOST='address'

 

그 후 아래와 같이 호출하여 사용.

const dotenv = require('dotenv');
const env = process.argv[2]||'local'
const dbHost = process.env[`${env.toUpperCase()}_DB_HOST`];
const dbUser = process.env[`${env.toUpperCase()}_DB_USER`];

 

 

결론은 1번을 선택

아무래도 따로 파일을 관리해야 정보를 구별하기도 쉽고, 

현재 내가 작성해둔 코드에서 다른 .env 파일을 이용하여 호출할 때  app.js 에서만 조정을 해주면 된다..ㅎㅎ

+ Recent posts