2012-09-03 2 views
7

node.js 서버에서 일부 디버그 기능을 사용하려면 NODE_ENV 환경 변수에 액세스하고 있습니다. 그것은 마치 매력처럼 작동했지만, 지금은 아주 이상한 것들에 직면하고 있습니다. 내가 무엇을 얻을 여기NODE_ENV 환경 변수에 제대로 액세스 할 수 없습니다. node.js의 버그입니까?

// check if the env var is OK 
console.log(process.env.NODE_ENV); 

// WTF??? 
if (process.env.NODE_ENV == "development") { 
    console.log("ok"); 
} 
else { 
    console.log("nope"); 
} 

// sanity check 
var str = "development"; 
if (str == "development") { 
    console.log("ok"); 
} 
else { 
    console.log("nope"); 
} 

을 그리고 :

development 
nope 
ok 

어떻게 그게 가능 여기에 내가 뭘 무엇인가? node.js의 버그에 직면하고 있습니까? 그렇지 않다면 내가 뭘 잘못하고 있니?

]development 
nope 
ok 

그래서, 알려진 문제가 아마 여기 아래에 뾰족한의 의견에 따라

편집

, 나는 console.log("[" + process.env.NODE_ENV + "]"); 내 초기 로그를 변경하면 내가 무엇을 얻을?

+2

변경을 ("["+ process.env.NODE_ENV + "]"); 어쩌면 – Pointy

+0

@Pointy이 완료 후행 공백이있는 경우 '를 참조하는 참조 내 편집하다. 그래서. 계몽하십시오^ –

+2

아 - 그럼 당신의 환경 변수가 참 재미있는 캐릭터를 가지고있는 것 같아요. 아마도 마지막에 마차를 돌려 주겠습니까? – Pointy

답변

10

환경 변수에 재미있는 문자가있는 것 같습니다. 이는 Node.js 외부에서 설정되는 방식 때문일 수 있습니다. 당신이 시도 할 수 : CONSOLE.LOG`에

if (process.env.NODE_ENV.replace(/\W/g, '') == 'development') { 
    console.log('ok'); 
} 
+1

네, 맞습니다! 윈도우 라인 엔딩이있는 스크립트로 변수를 설정하고 있었는데, 만약 bash에서 직접 설정했다면 문제는 사라졌습니다! 음, 고맙습니다. –

관련 문제