process.env.NODE_ENV未定义

我正在尝试关注NodeJs的教程。 我不认为我错过了什么,但每当我打电话给process.env.NODE_ENV我唯一的价值是未定义的。 根据我的研究,默认值应该是“发展”。 这个值是如何dynamic设置的,最初是在哪里设置的?

process.env是对你的环境的引用,所以你必须在那里设置variables。

在Windows中设置环境variables :

 SET NODE_ENV=development 

在OS X或Linux上 :

 export NODE_ENV=development 

对于使用* nix(Linux,OS X等)的用户,没有理由通过第二个导出命令来完成,您可以将其链接为调用命令的一部分:

 NODE_ENV=development node server.js 

更容易,不是? 🙂

提示

package.json

 "scripts": { "start": "set NODE_ENV=dev && node app.js" } 

app.js

 console.log(process.env.NODE_ENV) // dev console.log(process.env.NODE_ENV === 'dev') // false console.log(process.env.NODE_ENV.length) // 4 (including a space at the end) 

所以,这可能会更好:

 "start": "set NODE_ENV=dev&& node app.js" 

要么

 console.log(process.env.NODE_ENV.trim() === 'dev') // true 

在Windows上使用节点时遇到了这个问题。

我们没有要求任何试图运行应用程序的人来设置这些variables,而是在应用程序中提供了一个回退。

 var environment = process.env.NODE_ENV || 'development'; 

在生产环境中,我们将按照常规方法(SET / export)来定义它。

在UBUNTU使用:

$ export NODE_ENV = test

您也可以通过代码来设置它,例如:

process.env.NODE_ENV = 'test';