Node.js

Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기

InspiredJW 2012. 3. 2. 18:48
보통 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 값을 설정할 수 있습니다.