Node
중요한 변수값(서버 속성 및 포트)을 환경변수로 사용하기
sungtt
2022. 4. 17. 08:36
개요
노트북과 데스크톱을 오가며 작업할 때, 깃을 통해 프로젝트 파일을 업데이트해왔다.
이때 파일 내에 mysql에 연동하는 DB계정 또는 포트, 토큰 생성용 보안키 등
외부에 노출되어선 안될 코드들이 있었다.
각각의 로컬 환경에서 개발하기 때문에 DB를 연동할 때에는
코드를 다시 작성해야 하는 번거로움이 있었다.
이런 번거로움과 보안성을 모두 잡을 수 있는 환경변수와
그 환경변수를 사용하는데 유용한 모듈인 dotenv를 통해
서버에 들어가 있는 중요한 변수들을 따로 빼놓을 것이다.
dotenv 설치
dotenv 사용을 위해 모듈을 먼저 설치해준다.
npm install dotenv
또는
yarn add dotenv
. env 파일 생성
루트 경로에 환경변수 파일을 생성한다.
//.env
SECRET_TOKEN = '보안키'
DB_password = 'DB비밀번호'
환경변수 읽어오기
환경변수를 사용할 js파일 가장 상단에 dotenv를 불러오는 코드를 추가해준다.
가장 상단이 아니더라도, 환경변수를 사용하기 전에는 미리 호출해야 사용하는데 지장 없음은 당연하다.
require('dotenv').config();
환경변수 사용하기
process.env. 변수명으로 접근하여 변수를 사용할 수 있다.
//상단
require('dotenv').config();
const SECRET_TOKEN = process.env.SECRET_TOKEN;
const db = mysql.createConnection({
password: process.env.DB_password,
});
다른 경로의 환경변수 사용하기
루트 경로가 아닌 다른 경로의 환경변수 사용 시 config 메서드 안에 path를 작성해줘야 한다.
다른 이름의. env 파일도 사용 가능하다.
// 상대 경로의 .env 파일 불러오기
require('dotenv').config({ path: "../.env" });
// 상대 경로의 test.env 파일 불러오기
require('dotenv').config({ path: "../src/test.env" });
// 절대 경로의 test.env 파일 불러오기
require('dotenv').config({ path:"C:/User/Desktop/test.env" });
후기
이어서 데스크톱. gitignore 파일에. env파일을 추가해주고 push,
노트북에서 pull 하여 당겨온 뒤 dotenv모듈을 설치해주고
. env파일을 따로 생성해주니 각 환경에 맞게 구동될 수 있었다.
이제 맘 편히 깃을 통해 작업환경을 드나들 수 있다!