Study/라이브러리

[라이브러리] dotenv를 통해 .env 파일로 관리하기

taecongs 2024. 1. 2. 13:21

알고있으면 좋은 Tip✨


dotenv를 통해 .env 파일로 관리하기

  • 현재 진행 중인 프로젝트(리엑트를 기반으로 client & server 폴더로 구분하고 있다.)에서 환경 변수를 조금 더 효과적으로 관리하기 위해 dotenv라는 라이브러리를 설치해서 사용해보려고 한다. 

 

(1) dotenv 패키지 설치

  • npm 패키지 매니저를 통해 dotenv 라이브러리를 Node.js 프로젝트에 설치한다.
guidebook/server/npm i dotenv

 

(2) .env 파일 작성

  • dotenv 라이브러리는 아무 설정을 하지 않으면 현재 디렉토리에 위치한 .env 파일로부터 환경 변수를 읽어온다. .env 파일을 생성하고, 그 안에 필요한 환경 변수를 키=값의 포맷으로 정의해줘야 한다.
DB_HOST=localhost
DB_USER=계정아이디(root 또는 본인이 설정한 계정아이디)
DB_PASS=비밀번호
DB_DATABASE=데이터베이스명(연결 할 데이터베이스명)
  • CommonJS 기반인지 ES 모듈 기반인지에 따라 라이브러리 사용법이 다르다.

 

(3) CommonJS에서 환경 변수 불러오기 (require)

  • dotenv 라이브러리를 import 한 후 config() 함수를 호출하여 사용하면 된다.
const mysql = require("mysql2");
require('dotenv').config({ path: path.join(__dirname, '../../.env') });


/*====================================================
    // MySQL 데이터베이스 연결 설정
=====================================================*/
const db = mysql.createPool({
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
});

 

(4) ES 모듈에서 환경 변수 불러오기 (import)

  • Node.js 환경에서는 require 대신에 import 키워드를 사용해서 dotenv 패키지를 불러오면 된다.
import dotenv from "dotenv";

dotenv.config();

console.log("DB_HOST", process.env.DB_HOST);
console.log("DB_USER:", process.env.DB_USER);
console.log("DB_PASS:", process.env.DB_PASS);