본문으로 바로가기

dotenv 환경변수 관리

category 개발/JS 2021. 12. 30. 00:30

데이터베이스 설정 정보를 관리하기 위해 config 파일을 생성해서 내용들을 넣어뒀다. JWT 적용 중에 KEY 값 보관 할 파일을 추가로 만들어야 하나 싶었다. JWT 예제들을 보니 dotenv를 활용한 코드들이 보여 구글링해보니 환경 변수를 관리하는 라이브러리다. 

 

/config/dbconfig.js에 정보를 저장해 두고 mysql 접속하는 dbconn.js에서 불러들이는 방식이었다.

config/dbconfig.js
const config = {
    host: 'localhost',
    user: 'user',
    password: 'password',
    database: 'db',
};

module.exports = config;
common/dbconn.js
const config = require('../config/dbconfig');
const mysql = require('mysql');
const db = mysql.createConnection({
    host: config.host,
    user: config.user,
    password: config.password,
    database: config.database,
});

module.exports = db;

dotenv 사용해 .env 파일에 환경 변수를 사용하는 방법으로 변경했다. dbconfig.js는 삭제했으며 .env 파일은 .gitignore 파일에 추가해 git에 추가되지 않도록 했다. 민감한 정보의 파일은 .gitignore에 추가해 공개 장소에 올라가지 않도록 한다.

설치
yarn add dotenv
.env
# DB
DB_Host = localhost
DB_User = user
DB_Password = password
DB_Database = db

# jsonwebtoken
JWT_KEY = 1234567890
common/dbconn.js
require('dotenv').config();
const mysql = require('mysql');
const db = mysql.createConnection({
    host: process.env.DB_Host,
    user: process.env.DB_User,
    password: process.env.DB_Password,
    database: process.env.DB_Database,
});

module.exports = db;

 

.env 파일을 프로젝트 폴더 최상단에 두었다면 본문처럼 require('dotenv').config(); 형식으로 불러들이고, process.env.변수이름으로 사용하면 된다. 

 

https://www.npmjs.com/package/dotenv

 

dotenv

Loads environment variables from .env file

www.npmjs.com