Node.js process.env.NODE_env正在开发中,但它显示出意外的优点

Node.js process.env.NODE_env正在开发中,但它显示出意外的优点,node.js,express,environment-variables,development-environment,Node.js,Express,Environment Variables,Development Environment,我正在开发环境中运行节点服务器,但在服务器文件中,它显示了意外行为 我的脚本如下所示: var env = process.env.NODE_ENV; console.log("------------------------------"); console.log("envenv",typeof env,env); console.log("0",typeof env); console.log("00",env); console.log("2",env.toString()=='deve

我正在开发环境中运行节点服务器,但在服务器文件中,它显示了意外行为

我的脚本如下所示:

var env = process.env.NODE_ENV;
console.log("------------------------------");
console.log("envenv",typeof env,env);
console.log("0",typeof env);
console.log("00",env);
console.log("2",env.toString()=='development');
console.log("3",""+env.toString()=='production');
console.log("2",env==='development');
console.log("3",env=="production");
console.log("------------------------------");
但它给出了以下输出

当我尝试以下任何一种方法时,效果都很好

或字符串类原型中除toString()以外的任何方法
它工作正常

环境变量NODE_ENV包含多余的
。设置环境变量时出错。供windows系统使用

> SET NODE_ENV=development
而不是

> SET NODE_ENV='development'
这应该可以解决问题

要获取打印在命令行上的NODE_ENV的当前值,请使用

> echo %NODE_ENV%
应该打印出来

> development

没有“或”

如何设置
节点\u ENV
?我在windows上工作,我刚刚花了一些时间来解决同样的问题,发现这是因为我的npm脚本看起来像是
SET NODE_ENV=production&&do everything
,所以
NODE_ENV
实际上包含空格作为最后一个字符,出于某种原因,它没有显示在控制台中(我做了与您相同的测试,但我也检查了字符串的长度,发现NODE_ENV比应该的宽一个符号)。将脚本更改为
set NODE_ENV=production&&do everything
解决了这个问题

控制台日志(“00”,环境)

这应该打印
00“开发”
,而不是
00“开发”


您应该再次设置您的环境。

我正在使用包中的脚本内的set NODE_env=development&&…other。json@AkhileshKumar,然后,正如我所解释的,删除“&&”之前的空白,检查它是否能解决您的问题。
NODE_ENV=development&
@aush这就是答案。我也遇到了同样的问题,它解决了!
> echo %NODE_ENV%
> development