可以'无法正确访问NODE_ENV环境变量,这是NODE.js的错误吗

Can't access the NODE_ENV environment variable properly, is this a bug with node.js?

本文关键字:NODE 环境变量 ENV 这是 js 错误 可以 访问      更新时间:2023-09-26

我正在访问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

那么,也许是一个已知的问题?

看起来你的环境变量有一些有趣的字符,可能是因为它在Node.js之外的设置方式

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