18

我有一个节点应用程序,它有这样一行:

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,所以我继续config var在 Heroku 中定义了 a:

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

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

如何让节点从 heroku 正确读取配置变量?

4

1 回答 1

39

你想用heroku config:set IP=http://app.mydomain.com; 它定义了一个名为 的环境变量IP,您可以在 Node.js 中通过process.env.IP. 有关详细信息,请参阅为已部署的应用程序设置配置变量

于 2012-11-02T18:18:05.027 回答