node.js - Node.js 中的环境变量不变
问题描述
set NODE_ENV=production
不能在我的电脑上工作。NODE_ENV
不从“发展”变if(app.get('env') === 'development'){ app.use(morgan('tiny')); console.log("Morgan enabled..."); }
set PORT=5000
不工作 -PORT
没有从“3000”改变。const port = process.env.PORT || 3000; app.listen(port, () => console.log(`Listening on port ${port}...`));
解决方案
作为 Windows 用户,我过去在导出/设置环境变量以供节点使用时遇到问题。
我最终使用了dotenv
NPM 包,因为无论您在什么系统上开发,您都可以确保它正确加载环境变量。
Dotenv 是一个零依赖模块,它将环境变量从 .env 文件加载到 process.env 中。
首先,安装并保存:
npm i dotenv
在项目的根目录中创建一个名为.env
PORT=5000
X=Y
您可以使用简单的语法设置任意数量的变量。
然后,在您的代码中的某处:
require('dotenv').config();
// my main application code
通过上面的示例,您现在可以访问process.env.PORT
which will equal 5000
(从.env
文件中设置的值)
注意:通过添加规则避免存储.env
在版本控制中:.gitignore
node_modules/
# Other ignore rules...
# Add this line
.env
祝你好运!
推荐阅读
- c - 如何确定循环级并行性对先前语句的未来迭代的依赖性?
- github - 我无法在 Github 上创建分叉
- python - Ansible 中的回溯错误(Python 版本不匹配?)
- javascript - 使用 JavaScript 将名称添加到数据库中不起作用
- kotlin - 结果集中的动态 TableView 列 (kotlin)
- node.js - 异步等待 Fetch 给出未定义
- automation - 设置循环计数的目的
- angular6 - Routerlink 不起作用,但如果我在 url 中输入路径,我可以转到视图
- php - PHP 如何访问数据库并使用 $db->* 进行查询
- firebase - Codeship + Firebase 功能:config:set = 404 方法未找到