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';