我正在使用 Node foreman 加载一些环境变量,例如我的数据库字符串和一些用于发送电子邮件的 Gmail 凭据。
我的变量已正确加载到本地,但部署到 Heroku 时无法加载它们。
package.json
{
"name": "mysite",
"version": "1.0.0",
"description": "",
"main": "server.js",
"dependencies": {
"body-parser": "*",
"express": "*",
"foreman": "1.4.1",
"method-override": "*",
"mongoose": "*",
"nodemailer": "*"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nf start"
},
"engines": {
"node": "*"
},
"author": "",
"license": "ISC"
}
.env
DB_URL='dbstring'
EMAIL_SERVICE='Gmail'
EMAIL_USERNAME='foo@bar.com'
EMAIL_PASSWORDTOKEN='pwtoken'
配置文件
web: node server.js
node-foreman 文档说要 .gitignore 它,如果部署到 Heroku 是否需要撤消此操作? node-foreman 和 Heroku 都没有说必须发生这种情况,所以我认为不会。但我没有主意。
在生产环境中注销的 env 对象的快照
环境
{ WEB_MEMORY: '512',
PATH: '/app/.heroku/node/bin:/usr/local/bin:/usr/bin:/bin:/app/bin:/app/node_modules/.bin',
WEB_CONCURRENCY: '1',
PWD: '/app',
NODE_ENV: 'production',
PS1: '\\[\\033[01;34m\\]\\w\\[\\033[00m\\] \\[\\033[01;32m\\]$ \\[\\033[00m\\]',
SHLVL: '1',
HOME: '/app',
NODE_HOME: '/app/.heroku/node',
PORT: '34225',
_: '/app/.heroku/node/bin/node' }
最佳答案
对于将来阅读本文的任何人来说,当我意识到 Heroku 有自己的一组环境变量时,我会感到“啊哈”,您可以通过 Foreman 将使用的 cmd/仪表板设置。
关于node.js - Node-Foreman 在部署到 Heroku 时不加载环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568145/