我正在学习NodeJS的教程。我不认为我错过了任何东西,但每当我调用process。env。NODE_ENV返回的唯一值是undefined。根据我的研究,默认值应该是development。该值如何动态设置,初始设置在哪里?
当前回答
在应用程序中尽可能早地要求并配置dotenv。
要求(' dotenv ') . config ()
其他回答
这是由于操作系统
在你的包裹里。json,确保有你的脚本(app.js是你要执行的主js文件,NODE_ENV是在.env文件中声明的)。例如:
"scripts": {
"start": "node app.js",
"dev": "nodemon server.js",
"prod": "NODE_ENV=production & nodemon app.js"
}
对于windows
还要设置你的.env文件变量NODE_ENV=development
如果你的。env文件在一个文件夹,例如。Config文件夹确保在app.js(你的主js文件)中指定
Const dotenv = require('dotenv'); dotenv。Config ({path: './ Config / Config . path: ')env '});
对于使用*nix (Linux, OS X等)的人来说,没有理由通过第二个导出命令来执行它,你可以将它作为调用命令的一部分:
NODE_ENV=development node server.js
更容易,不是吗?:)
的过程。Env是对环境的引用,所以你必须在那里设置变量。
使用实例设置Windows环境变量。
SET NODE_ENV=development
在macOS / OS X或Linux上:
export NODE_ENV=development
在应用程序中尽可能早地要求并配置dotenv。
要求(' dotenv ') . config ()
tips
在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"
or
console.log(process.env.NODE_ENV.trim() === 'dev') // true