[英]process.env.NODE_ENV is in development still it shows unexpected behivour
I'm running my node server in development environment but in my server file it shows unexpected behaviour 我在开发环境中运行节点服务器,但在服务器文件中却显示意外行为
my script is as fallows: 我的脚本是休假:
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("------------------------------");
but it gives following output
但它给出以下输出
------------------------------
envenv string 'development'
0 string
00 'development'
2 false
3 false
2 false
3 false
------------------------------
When I tried any of following it worked fine
当我尝试以下任何一项时,都可以正常工作
var env = process.env.NODE_ENV.trim();
var env = process.env.NODE_ENV.toLowerCase();
var env = process.env.NODE_ENV.replace("","");
.............
or any method other then toString() which are in prototype of String class It worked fine 或String类原型中的toString()以外的任何方法
The environment variable NODE_ENV contains superfluous '
. 环境变量NODE_ENV包含多余的
'
。 Something went wrong when setting the environment variable. 设置环境变量时出了点问题。 For windows system use
对于Windows系统使用
> SET NODE_ENV=development
instead of 代替
> SET NODE_ENV='development'
That should fix the issue. 那应该解决问题。
To get the current value of NODE_ENV printed on the command line use 要获取在命令行上打印的NODE_ENV的当前值,请使用
> echo %NODE_ENV%
That should print 那应该打印
> development
Without any " or ' 没有任何“或”
How do you set the NODE_ENV
? 您如何设置
NODE_ENV
? I'm working on windows and I've just spent some time fighting the same problem and discovered that it was because my npm script looked like SET NODE_ENV=production && do everything else
so NODE_ENV
was actually containing the whitespace as the last character which for some reason wasn't displayed in a console (I've done kind of the same set of tests as yours, but I also checked lengths of my strings and discovered that NODE_ENV is one symbol wider than it should be). 我在Windows上工作,我花了一些时间解决相同的问题,发现那是因为我的npm脚本看起来像
SET NODE_ENV=production && do everything else
所以NODE_ENV
实际上包含空格作为最后一个字符,某些原因未在控制台中显示(我完成了与您相同的一组测试,但是我还检查了字符串的长度,发现NODE_ENV比应有的符号宽了一个符号)。 Changing my script to SET NODE_ENV=production&& do everything else
solved the issue. 将我的脚本更改为
SET NODE_ENV=production&& do everything else
解决SET NODE_ENV=production&& do everything else
问题。
console.log("00",env);
的console.log( “00”,ENV);
this should print 00 development
instead of 00 'development'
这应该打印
00 development
而不是00 'development'
You should set your env again. 您应该再次设置环境。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.