728x90
반응형
Node 기반에서 .env 환경변수 파일 설정
프로젝트를 진행하면서 DB연동을 하거나, 각 서비스마다의 메시지 문구를 각 비지니스로직에 하드코딩해 놓는 것은 유지보수하기 어렵고, git에 오픈소스로 제공하다보면 보안에 취약해질 수 있어서 .env파일로 환경변수를 관리하도록 설정해보았다.
직접 개발환경을 구성하며 찾아다니다 보니 보안성면에서도 생각하게 되는 계기가 되어 작업하였다.
1. dotenv 라이브러리 설치
npm install dotenv --save
2. env 파일 작성
아래와 같이 DB관련 접속정보를 작성해주었다.
# config/env/.env.development.local 생성
#
# >> 환경변수 : DB관련정보, API_KEY등 개발팀만 알아야 하는 값
# 즉, git에 올리면 안되는 값들에 대한 변수를 해당 파일에서 관리한다.
MARIA_DB=mysql
MARIA_NAME=[database이름]
MARIA_HOST=localhost
MARIA_PORT=3306
MARIA_USER=root
MARIA_PASSWORD=[비밀번호]
3. env 환경변수 사용
env파일에 설정해 놓은 환경변수를 가져다 써야 하는 js 파일에 아래처럼 작성하게 되면 원하는 .env 파일의 위치를 직접 지정하여 상황에 맞게 환경변수를 작성하여 사용할 수 있게 된다.
require('dotenv').config({ path: "config/env/.env.development.local"});
우선 maria.js라는 파일에서 DB 커넥션을 담당하는 router로 사용하고 있기 때문에 해당 파일에 위 env 파일에 작성한 내용을 process.env.변수명
으로 작성하여 환경변수를 사용해주도록 하였다.
/* Maria Connect 접속정보 : 20221006_moon */
const maria = require('mysql');
/* env require */
require('dotenv').config({ path: "config/env/.env.development.local"});
// 추후 DB서버 구축 후 변경 예정...
const conn = maria.createConnection({
host: process.env.MARIA_HOST,
port: process.env.MARIA_PORT,
user: process.env.MARIA_USER,
password: process.env.MARIA_PASSWORD,
database: process.env.MARIA_NAME
});
module.exports = conn;
728x90
반응형
'개발 기록 > 개인프로젝트 기록' 카테고리의 다른 글
[개인프로젝트] [6] 회원가입 - id 중복체크 (ajax) (1) | 2022.10.17 |
---|---|
[개인프로젝트] [4] 로그인 및 session 처리(express-session 활용) (0) | 2022.10.10 |
[개인프로젝트] [3] Express에 mybatis-mapper 적용 (0) | 2022.10.06 |
[개인프로젝트] [2] Node Express - MariaDB 연동 / 테이블 설계 (0) | 2022.10.06 |
[개인프로젝트] [1] Node Express 개발환경구성 (Node.js, Express, EJS, BootStrap, Express-generator) (0) | 2022.10.04 |