Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- max_allowed_packet
- useReducer
- 프로그래머스
- AWS
- 코드정렬
- vscode
- 자연수 뒤집어 배열로 만들기
- elasticIP
- react
- 자동완성방지
- MySQL
- 커밋 한번에
- 프리티어
- 리액트
- reacts3
- axios
- s3확장자
- 코딩테스트
- 제일 작은 수 제거하기
- express
- Node
- prettier
- interactive_timeout
- utf8mb4
- .env
- dotenv
- 부족한 금액 계산하기
- 리액트코드정렬
- EC2
- next #middleware
Archives
- Today
- Total
Sungtt
중요한 변수값(서버 속성 및 포트)을 환경변수로 사용하기 본문
개요
노트북과 데스크톱을 오가며 작업할 때, 깃을 통해 프로젝트 파일을 업데이트해왔다.
이때 파일 내에 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파일을 따로 생성해주니 각 환경에 맞게 구동될 수 있었다.
이제 맘 편히 깃을 통해 작업환경을 드나들 수 있다!
'Node' 카테고리의 다른 글
타입스크립트에서 ES6방식으로 모듈 사용 시..ts2691 (0) | 2022.07.20 |
---|---|
nginx 405 Not Allowed (0) | 2022.05.06 |
crypto-js 암호화,복호화하기 (0) | 2022.03.24 |
[Sequelize] 2 - DB연결하기 (0) | 2022.03.02 |
[Sequelize] 1 - Sequelize란..? 그리고 설치 (0) | 2022.03.02 |
Comments