보통 Node.js 를 실행할 때  `NODE_ENV` 값을 이용해서 > production ( 배포 ) 모드 > development ( 개발 ) 모드 이렇게 두 가지로 나누어서 실행하게 되는데요. Node.js 프레임워크인 [Express](http://expressjs.com) 의 경우 <br> **production 모드** 일때는 **파일 캐싱, 에러 메시지 감추기** 등 배포의 적합한 환경 설정을 하구요. <br> **development 모드** 일 때는 **파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기** 등 개발에 도움을 줄 수 있는 환경으로 설정을 해줍니다. <br> 하지만 직접 이 값을 알아 내고 싶을 때가 있는데요. 이럴 때는 Express 에서 전체 앱을 총괄하는 역할을 맡고 있는 **root 디렉토리의 app.js** 에서 **첫 줄**에 <br> ``` process.env.NODE_ENV = ( process.env.NODE_ENV && ( process.env.NODE_ENV ).trim().toLowerCase() == 'production' ) ? 'production' : 'development'; ``` <br> 이렇게 해주면 NODE_ENV 가 따로 지정이 안되어 있더라도 development 모드로 지정되게 해줄 수 있습니다. <br> 이후 **이 앱 소스 어디에서나 ( require 된 파일 포함 )** ``` if (process.env.NODE_ENV == 'production') { console.log("Production Mode"); } else if (process.env.NODE_ENV == 'development') { console.log("Development Mode"); } ``` 위 처럼 NODE_ENV 값에 따라 하고 싶은 일을 함으로써 개발과 배포용 소스를 따로 분리해서 코딩 할 수 있습니다. <br> 혹시 NODE_ENV 값을 설정하는 방법을 모르신다면 **Linux, Mac OS X** 기준으로 Terminal, Shell 창에서 ``` export NODE_ENV=production ``` 이렇게 해주시면 NODE_ENV 값을 설정 할 수 있게 됩니다. <br> **한가지 더!** Terminal, Shell 창이 아닌 **Windows** 운영체제에서 Node.js 를 구동하실 때에는 ``` set NODE_ENV=production ``` 이렇게 조금 다른 명령어로 `NODE_ENV` 값을 설정할 수 있습니다.
author | inspiredjw |
---|---|
permlink | node-js-nodeenv |
category | kr |
json_metadata | {"tags":["kr","kr-dev","kr-newbie","nodejs"],"image":["https://steemitimages.com/DQmSwW2jSoCXmgCR1FQFDia4Q1SHvADVJVvTEBeZKKrYW8X/image.png"],"links":["http://expressjs.com"],"app":"steemit/0.1","format":"markdown"} |
created | 2017-07-02 20:29:48 |
last_update | 2017-07-02 20:29:48 |
depth | 0 |
children | 2 |
last_payout | 2017-07-09 20:29:48 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 9.127 HBD |
curator_payout_value | 2.841 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,394 |
author_reputation | 836,711,962,277 |
root_title | "Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 0 |
post_id | 7,060,283 |
net_rshares | 1,645,972,384,516 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
jongeun | 0 | 4,423,267,477 | 93.31% | ||
ioc | 0 | 351,066,323,990 | 6% | ||
agile | 0 | 2,080,676,210 | 100% | ||
iamstevechang | 0 | 81,300,638,411 | 100% | ||
skan | 0 | 1,190,819,194,406 | 15% | ||
virus707 | 0 | 11,030,092,141 | 1% | ||
inspiredjw | 0 | 3,963,052,570 | 100% | ||
deathnote9 | 0 | 1,289,139,311 | 100% |
안그래도 조만간 Node.js 사용해야 됬는데 감사합니다!
author | deathnote9 |
---|---|
permlink | re-inspiredjw-node-js-nodeenv-20170703t004829361z |
category | kr |
json_metadata | {"tags":["kr"],"app":"steemit/0.1"} |
created | 2017-07-03 00:48:33 |
last_update | 2017-07-03 00:48:33 |
depth | 1 |
children | 0 |
last_payout | 2017-07-10 00:48:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 32 |
author_reputation | 94,070,047,675 |
root_title | "Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 7,081,554 |
net_rshares | 0 |
This post received a 93.31% upvote from @jongeun thanks to @jongeun! For more information, [click here](https://steemit.com/kr/@jongeun/randowhale-node-js)!
author | jongeun |
---|---|
permlink | re-inspiredjw-node-js-nodeenv-20170703t021029493z |
category | kr |
json_metadata | "" |
created | 2017-07-03 02:10:36 |
last_update | 2017-07-03 02:10:36 |
depth | 1 |
children | 0 |
last_payout | 2017-07-10 02:10:36 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 156 |
author_reputation | 2,058,342,492,020 |
root_title | "Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 7,087,172 |
net_rshares | 0 |