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

Mic*_*ael 16 javascript heroku node.js

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

var ip = process.env.IP || 'http://localhost';
Run Code Online (Sandbox Code Playgroud)

我正在使用它与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);
    });
  }
));
Run Code Online (Sandbox Code Playgroud)

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

heroku config:add process.env.IP=http://app.mydomain.com
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*ley 35

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

  • 为什么地球在文档中不是更清晰?!示例应用程序是5000,所以我假设所有 (2认同)