运行Node应用程序时,Node如何知道它运行的环境?
我理解环境是在process.env.NODE_ENV
内定义的,但该变量的定义方式和位置是什么?
答案 0 :(得分:1)
有多种设置节点变量的方法,但最常见的是
<强> 1。是启动它们的控制台,如下所示:
> NODE_ENV=prod node start.js
process.env.NODE_ENV // prod
但有时您可以在文件开头之前显式设置env:
process.env.NODE_ENV = 'test';
require('config') // then it will return me the test.json config
// I use this technique mostly for unit tests
<强> 2。导出package.json
"scripts": {
"start": "export NODE_ENV=dev && node server.js", // for linux
"start": "set NODE_ENV=dev && node server", // for windows
"test": "mocha"
},
当您运行npm start
时,脚本将以dev
模式
第3。使用npm包作为dotenv
并设置.env
文件
env管理的插件为dotenv
最常用的插件。您可以使用所需的ENV变量创建.env
文件
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
答案 1 :(得分:0)
这些通常在package.json
命令中设置,或来自.env
文件。
例如,可以在NODE_ENV=development
中访问.env
文件中的process.env.NODE_ENV
。
要将.env
个文件加载到process.env
,请查看dotenv。
答案 2 :(得分:0)
除非您定义变量,否则不定义变量
我猜你使用的是普通的Windows机器
在Windows上,您可以简单地执行此操作。
创建一个随机索引文件并将其放入其中:console.log(process.env.NODE_ENV)
然后使用:set NODE_ENV=productionEnvironment && node index