7

我正在访问 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 中的错误?如果没有,我做错了什么?

编辑

在下面 Pointy 的评论之后,如果我将初始日志更改为console.log("[" + process.env.NODE_ENV + "]");

]development
nope
ok

那么,可能是一个已知问题?

4

1 回答 1

11

看起来您的环境变量有一些有趣的字符,可能是由于它在 Node.js 之外设置的方式。你可以试试这个:

if (process.env.NODE_ENV.replace(/\W/g, '') == 'development') {
  console.log('ok');
}
于 2012-09-03T17:43:39.153 回答