보통 Node.js 를 실행할 때
NODE_ENV
값을 이용해서
production ( 배포 ) 모드
development ( 개발 ) 모드
이렇게 두 가지로 나누어서 실행하게 되는데요.
Node.js 프레임워크인 Express 의 경우
production 모드 일때는
파일 캐싱, 에러 메시지 감추기 등 배포의 적합한 환경 설정을 하구요.
development 모드 일 때는
파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기 등
개발에 도움을 줄 수 있는 환경으로 설정을 해줍니다.
하지만 직접 이 값을 알아 내고 싶을 때가 있는데요.
이럴 때는 Express 에서 전체 앱을 총괄하는 역할을 맡고 있는 root 디렉토리의 app.js 에서 첫 줄에
process.env.NODE_ENV = ( process.env.NODE_ENV && ( process.env.NODE_ENV ).trim().toLowerCase() == 'production' ) ? 'production' : 'development';
이렇게 해주면 NODE_ENV 가 따로 지정이 안되어 있더라도 development 모드로 지정되게 해줄 수 있습니다.
이후 이 앱 소스 어디에서나 ( require 된 파일 포함 )
if (process.env.NODE_ENV == 'production') {
console.log("Production Mode");
} else if (process.env.NODE_ENV == 'development') {
console.log("Development Mode");
}
위 처럼 NODE_ENV 값에 따라 하고 싶은 일을 함으로써 개발과 배포용 소스를 따로 분리해서 코딩 할 수 있습니다.
혹시 NODE_ENV 값을 설정하는 방법을 모르신다면
Linux, Mac OS X 기준으로
Terminal, Shell 창에서
export NODE_ENV=production
이렇게 해주시면 NODE_ENV 값을 설정 할 수 있게 됩니다.
한가지 더!
Terminal, Shell 창이 아닌 Windows 운영체제에서 Node.js 를 구동하실 때에는
set NODE_ENV=production
이렇게 조금 다른 명령어로 NODE_ENV
값을 설정할 수 있습니다.
안그래도 조만간 Node.js 사용해야 됬는데 감사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This post received a 93.31% upvote from @jongeun thanks to @jongeun! For more information, click here!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit