process.env.NODE_ENV正在开发中,它仍显示出意想不到的困难

时间:2016-01-29 07:58:21

标签: 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()=='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类的原型 它运作良好

3 个答案:

答案 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'

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