Environment variable

dev__sana·2021년 2월 17일
0

Backend

목록 보기
3/3

Introduction

환경변수는 노드 자체의 Process에 저장해 두는 형식으로 중요 데이터를 담아두는 방법입니다.
Library로 지정할 것들(결제모듈, AWS, etc......)등등의 access key와 secret key, 기타 설정등을 저장할 때 사용할 수 있습니다.
기존에는 /config/... 방식으로 .json이나 .js파일등을 지정해 .json 파일의 경우는 fs모듈을 사용하여 읽어오고, js파일은 import(ES5방식은 require)을 통해 읽어들여서 사용했습니다.
하지만 노드는 훨씬 강력한 변수 저장 기능인 env를 제공합니다!

그 전에, 필요 모듈이 두가지 정도 있습니다.
바로 dotenvcross-env 입니다.

Installation

npm i dotenv cross-env

Usage

1) dotenv

// Environment.js

import dotenv from 'dotenv';

switch (process.env.NODE_ENV) {
  case 'development':
    dotenv.config({ path: path.resolve().concat('/.env.development') });
    return;
  case 'production':
    dotenv.config({ path: path.resolve().concat('/.env.production') });
    return;
  default:
    dotenv.config({ path: path.resolve().concat('/.env.local') });
    return;
}

노드 프로젝트 시작 지점에 해당 파일을 import 받아서 실행해주면 알아서 .env파일을 읽어들여서 개발 환경 (위와 같은 경우는 development, production, local의 3가지로 나뉨)에 따라 process에 변수를 세팅합니다.

2) cross-env

위의 dotenv와 함께 사용하기면 좋은 모듈입니다. 노드 실행 명령어에 NODE_ENV라는 변수를 세팅할 수 있습니다.

// package.json
{
  ...,
  scripts: {
    ...,
    start: 'cross-env NODE_ENV=development node ./src/www
    ...
  },
  ...
}
profile
Delicious :)

0개의 댓글