我在开发环境中运行我的节点服务器,但在我的服务器文件中它显示出意外行为
我的剧本就是休闲:
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("------------------------------");
但它提供了以下输出
------------------------------
envenv string 'development'
0 string
00 'development'
2 false
3 false
2 false
3 false
------------------------------
当我尝试以下任何一项时,它运作良好
var env = process.env.NODE_ENV.trim();
var env = process.env.NODE_ENV.toLowerCase();
var env = process.env.NODE_ENV.replace("","");
.............
或除了String()之外的任何方法,它们都是String类的原型 它运作良好
答案 0 :(得分:3)
环境变量NODE_ENV包含多余的'
。设置环境变量时出错了。对于Windows系统使用
> SET NODE_ENV=development
而不是
> SET NODE_ENV='development'
这应解决问题。
要获取命令行上打印的NODE_ENV的当前值,请使用
> echo %NODE_ENV%
那应该打印
> development
没有任何"或者'
答案 1 :(得分:1)
如何设置NODE_ENV
?我在Windows上工作,我花了一些时间来解决同样的问题并发现这是因为我的npm脚本看起来像SET NODE_ENV=production && do everything else
所以NODE_ENV
实际上包含空格为由于某种原因未在控制台中显示的最后一个字符(我已经完成了与您相同的一组测试,但我还检查了字符串的长度并发现NODE_ENV比一个符号宽一个它应该是)。将我的脚本更改为SET NODE_ENV=production&& do everything else
解决了问题。
答案 2 :(得分:1)
的console.log( “00”,ENV);
这应该打印00 development
而不是00 'development'
你应该再次设置你的环境。