[NodeJs] 환경변수설정(.env)
환경변수설정
redis나 mysql 정보등 중요정보 등은 환경변수에서 관리하는 것이 보안등에 안정적이이므로 환경변수를 사용하기를 권장한다.
dotenv 사용하기
npm install dotenv
project root에 .env 파일을 생성한다.
.env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=db_user
DB_PASSWORD=db_password
DB_DATABASE=database
js 파일에서 호출하여 사용하기
require('dotenv').config();
const mysql = require('mysql');
const pool = mysql.createPool(
{
host: process.env.DB_HOST || '127.0.0.1',
user: process.env.DB_USER || 'db_user',
password: process.env.DB_PASSWORD || 'db_password',
database: process.env.DB_DATABASE || 'database',
multipleStatements: true
});
js에서 호출
require('dotenv').config();
console.log(process.env.DB_HOST)
console.log(process.env.DB_USER)
console.log(process.env.DB_PASSWORD)
console.log(process.env.DB_DATABASE)
그외
- https://unix.stackexchange.com/questions/21598/how-do-i-set-a-user-environment-variable-permanently-not-session/21600 : shell별 env 세팅법
- https://steemit.com/kr/@inspiredjw/node-js-nodeenv
- https://www.tecmint.com/set-unset-environment-variables-in-linux/
일시적
export NODE_ENV=production
영구적
vi ~/.bash_profile
NODE_ENV="production"; export NODE_ENV
다시 logout 후 login 되면 활성화 됨을 확인 할 수 있습니다.
if (process.env.NODE_ENV == 'production') {
console.log(""Production Mode"");
} else if (process.env.NODE_ENV == 'development') {
console.log(""Development Mode"");
}
- http://afrobambacar.github.io/2017/03/proccess-env-of-nodejs.html
$env
- 환경변수 생성 : $env NAME=VALUE // 이것은 작동안됨 아래 생성 이용
- 환경변수 삭제 : $env -u NAME
생성
export NODE_ENV=production // Terminal, Shell 에서 사용
set NODE_ENV=production // Windows 에서 사용
확인
$env | grep MYLOG