[Node.js][TIL] .env 사용법

Trippy·2023년 11월 4일
1

Node.js

목록 보기
6/28
post-thumbnail

dotenv로 환경 변수를 .env 파일로 관리하기

Node.js 프로젝트에서 환경 변수를 좀 더 효과적으로 관리하기 위해서 dotenv라는 라이브러리를 사용하고 있다. 이번 포스팅에서는 환경 변수를 파일에 저장해놓고 접근할 수 있게 도와주는 dotenv라이브러리에 대해서 알아보자


dotenv 패키지 설치

$ npm i dotenv


.env 파일 작성

dotenv라이브러리는 아무 설정을 하지 않으면 현재 디렉토리에 위치한 .env 파일로 부터 환경 변수를 읽어오는데, .env파일을 생성하고, 그 안에 필요한 환경 변수를 key = value 의 포맷으로 나열한다.

// .env
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름

이렇게 .env파일에 저장해놓은 환경 변수들을 dotenv 라이브러리를 이용해서 process.env에 설정할 수 있다.

본인 프로젝트가 CommonJS 기반인지 ES모듈 기반인지에 따라 라이브러리 사용법이 약간 상이하므로 나눠서 설명한다.


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

프로그램을 구동할 때 제일 먼저 실행되는 자바스크립트 파일(ex index.js, main.js)의 최상위에 다음과 같이 dotenv라이브러리를 임포트한 후 config() 함수를 호출해주기만 하면 된다.

// index.js
const dotenv = require("dotenv").config();

console.log('DB_USER', process.env.DB_USER);
console.log('DB_PW', process.env.DB_PW);
console.log('DB_NAME', process.env.DB_NAME);
$ node index.js
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름

하지만 같은 파일 내에서 dotenv라이브러리의 config()함수를 호출하기 전에 process.env를 읽으면 안 되니 주의해야 한다.



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

ES모듈에서 사용하고 있는 Node.js환경에서는 rrquire대신에 import키워드를 사용해서 dotenv패키지를 불러오면 된다.

import dotenv from "dotenv";

dotenv.config();

console.log("DB_USER", process.env.DB_USER);
console.log("DB_PW:", process.env.DB_PW);
console.log("DB_NAME:", process.env.DB_NAME);
$ node index.mjs
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름
profile
감금 당하고 개발만 하고 싶어요

0개의 댓글