Node-Foreman在部署到Heroku时不加载env变量

时间:2016-02-23 03:16:00

标签: node.js heroku

我正在使用节点工头加载一些环境变量,例如我的数据库字符串和一些Gmail凭据以发送电子邮件。

我的变量正确地加载到我的本地,但是当部署到Heroku时我无法加载它们。

的package.json

var isResizing = false;
$(function () {
   var container = $('#container'),
        left = $('#left'),
        handle = $('#handle');

    container.on('mousemove', function (e) {
        isResizing = true;
    });

    container.on('mouseout', function (e) {
        isResizing = false;
    });

    $(document).on('mousemove', function (e) {
        if (!isResizing) 
        return;
        left.css('width', e.clientX - container.offset().left);
        handle.css('margin-left', e.clientX - container.offset().left);
    });
});

.ENV

{
  "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"
}

Procfile

DB_URL='dbstring'
EMAIL_SERVICE='Gmail'
EMAIL_USERNAME='foo@bar.com'
EMAIL_PASSWORDTOKEN='pwtoken'

节点 - 工头文档说.gitignore它,如果部署到heroku,是否需要撤消?节点工头和Heroku都不会说必须发生,所以我不这么认为。但我没有想法。

在生产中注销的env对象的快照

env

web: node server.js

Link to Heroku's documentation regarding Node-Foreman

Link to Node-Foreman's GitHub

1 个答案:

答案 0 :(得分:4)

对于将来正在读这篇文章的人来说,当我意识到Heroku拥有自己的环境变量集时,我会通过Foreman将使用的cmd /仪表板设置一个“啊哈”时刻。