사고쳤어요
[Node.js] .env를 통해 환경 변수 설정하기 본문
작업을 하다보면 API Key 값, 데이터베이스 비밀번호 값 등 Github에 올리기 민감한 자료들이 존재한다.
.env 파일을 통해 민감한 자료들을 관리해보자.
dotenv 설치
https://www.npmjs.com/package/dotenv
dotenv
Loads environment variables from .env file. Latest version: 16.4.7, last published: 3 months ago. Start using dotenv in your project by running `npm i dotenv`. There are 53157 other projects in the npm registry using dotenv.
www.npmjs.com
npm install dotenv --save 명령을 통해 dotenv 모듈을 설치해준다.
.env 생성
진행중인 프로젝트의 루트 경로에 .env 파일을 생성해준다.
.env에는 다음과 같이 "변수명"="값" 형태로 민감한 정보들을 저장해주면 된다.
.gitignore 등록
마찬가지로 같은 루트 디렉토리에 .gitignore 파일을 생성해준다.
그리고 해당 파일에 .env를 입력하여 저장한다.
위와 같이 설정을 하게 되면, .env 형식의 파일들은 git에 올라가지 않는다.
실제로 .env와 .gitignore을 추가한 뒤 git status를 통해 확인을 해보면 .env 파일은 변경사항에 잡히지 않는 모습이다.
js파일에서 .env의 값 사용하기
require("dotenv").config();
console.log(process.env.MYSQL_PASSWORD);
이제 .env에서 저장한 값을 사용하고 싶다면 위 코드를 통해 사용할 수 있다.
require()을 통해 dotenv를 사용하고, process.env.변수명 을 통해 값을 가져와 사용할 수 있다.
const mysql = require("mysql2");
require("dotenv").config();
const connection = mysql.createConnection({
host: "localhost",
user: "root",
database: "board",
password: process.env.MYSQL_PASSWORD,
dateStrings: true,
});
module.exports = connection;
이를 응용하여 다음과 같이 MySQL 연결을 할 때 민감한 password 값을 .env로부터 가져와
password가 git에 올라갈 걱정 없이 사용할 수 있다!
'웹 풀스택' 카테고리의 다른 글
[Node.js] 유튜브 서비스 - 회원 조회 서비스(DB 연결) (0) | 2025.02.26 |
---|---|
[Node.js] MySQL 모듈화하여 사용하기 (0) | 2025.02.26 |
Error Code 1298 incorrect time zone: 'Asia/Seoul' 해결, Node.js에서 MySQL연결 시 Time 값이 다르게 불러오는 문제 해결 (0) | 2025.02.26 |
[Node.js] MySQL 연결하여 사용하기 (0) | 2025.02.26 |
[MySQL] 유튜브 서비스 - 명령어 없이 스키마, 테이블 만들기 (0) | 2025.02.26 |