让Heroku的配置变量在node.js中工作

时间:2012-11-02 18:11:37

标签: javascript node.js heroku

我有一个节点应用程序,其行如下:

var ip = process.env.IP || 'http://localhost';

我正在使用passport-facebook节点包来定义来自Facebook身份验证的回调:

passport.use(new FacebookStrategy({
clientID: FACEBOOK_APP_ID,
clientSecret: FACEBOOK_APP_SECRET,
callbackURL: ip + ":" + port + "/auth/facebook/callback"
},
  function(accessToken, refreshToken, profile, done) {
    // asynchronous verification, for effect...
    process.nextTick(function () {
      return done(null, profile);
    });
  }
));

似乎Heroku不知道process.env.IP所以我继续在Heroku中定义config var

heroku config:add process.env.IP=http://app.mydomain.com

调试服务器我发现ip不是我想要的,但是http://localhost与我在第一行代码中定义的回退相同。

如何让节点从heroku中正确读取配置文件?

1 个答案:

答案 0 :(得分:35)

您想使用heroku config:set IP=http://app.mydomain.com;它定义了一个名为IP的环境变量,您可以通过process.env.IP在Node.js中访问该变量。有关详细信息,请参阅Setting up config vars for a deployed application