node.js - Node-Foreman 在部署到 Heroku 时不加载环境变量

标签 node.js heroku

我正在使用 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' }

Link to Heroku's documentation regarding Node-Foreman

Link to Node-Foreman's GitHub

最佳答案

对于将来阅读本文的任何人来说,当我意识到 Heroku 有自己的一组环境变量时,我会感到“啊哈”,您可以通过 Foreman 将使用的 cmd/仪表板设置。

关于node.js - Node-Foreman 在部署到 Heroku 时不加载环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35568145/

相关文章:

javascript - 通过lambda函数向SQS发送消息时如何插入

node.js - 从 Controller 调用时,类方法 find My Mobile() 出现错误

node.js - 如何使用调试符号制作node-waf构建二进制文件?

reactjs - Heroku create-react-app deploy Uncaught SyntaxError : Unexpected token <

ruby-on-rails - Heroku 应用程序上的远程 mysql 数据库

node.js - 如何将字符串转换为十六进制nodejs

node.js - NodeJS无法连接到Redis

ruby-on-rails - 大型 JSON 负载 Rails、Heroku、Unicorn 上的机架超时

Heroku Pipelines : Configuration from app. json 被忽略

ruby-on-rails - Ruby on Rails 6 无法使用 webpack 部署到 heroku