.env
파일을 사용하는 것이 일반적깃 저장소에 업로드 하지말고 서버에 파일만 업로드해야한다.
대문자
로 하는 것이 관례❤️ 환경변수를 왜 사용해야하는가?
.env
파일에 존재하는 변수명과 새로 만드는 변수명이 겹치지 않게 주의npm install dotenv
-> 그 후, 사용해야할 파일에 환경변수를 읽어오는 코드를 작성
NAME = 김베키
NODE_KDT = kdt11
-> .env
파일에 나중에 사용할 환경변수를 정의한다.
require('dotenv').config() // .env파일의 환경변수를 읽어옴
-> js파일의 가장 상단에 위의 코드를 입력하면 .env
파일의 환경변수를 읽어온다.
app.get('/', (req, res) => {
res.render('index');
console.log(process.env); //환경변수에 있는 값들을 모두 보여줌
console.log(process.env.NODE);
console.log(process.env.NAME);
console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV === 'production') {
console.log('라이브 서버입니다.');
} else if (process.env.NODE_ENV === 'development') {
console.log('개발용 서버입니다.');
}
});
-> 이러한 방법으로 env
에서 설정한 환경변수에 접근 가능하다.
npm install cross-env
-> Node.js 프로젝트에서 운영 체제 간 환경변수 설정을 도와주는 모듈이다.
-> 어떤 실행환경에서 진행할 것인지 package.json의 "scripts"
에서 작성
-> 맥, 윈도우, 리눅스 어디에서든 동일하게 작동된다.
▶️ 이전에 cross-env
를 설치하기 전에는 서버를 실행할 때 nodemon [파일명]
해서 실행했지만, 이러한 방법은 서버가 분리될 수 없기 때문에 추후 배포시 문제가 발생할 수 있다. 그래서 그저 start
하나만 만드는 것이 아니라, start:dev
, start:prod
을 나눠 개발서버, 배포서버 등을 구분하는 것이다. (서버가 여러개 필요하다면 더 만들어도 상관없다)
▶️ 그대신, start:dev
, start:prod
등의 NODE_ENV
와 같은 환경변수의 이름이 동일해야한다.
▶️ 문자열
로 작성이 되므로, 따옴표를 굳이 쓰지 않아도 된다.
npm run [script에서 정의한 환경변수 값]
-> nodemon [파일명]
이 아니라 서버를 더 정확하게 구분해주는 위와 같은 명령어를 사용해서 서버를 실행하면 된다.
-> 이런식으로 실행하면 된다.