无法访问Heroku上的Web服务器

时间:2019-05-09 16:46:44

标签: node.js express heroku discord.js

我正在关注this tutorial/guide。在本地,它以localhost作为域,8080作为端口来工作。

这是本地配置:

"dashboard" : {
    "oauthSecret": `${process.env.oauthSecret}`,
    "callbackURL": `http://localhost:8080/callback`,
    "sessionSecret": "fakesessionsecret",
    "domain": "localhost",
    "port": 8080
  },

但是,现在,我想在Heroku上使用该应用程序,并通过https://project-name.herokuapp.com或通过自定义域访问Web仪表板,我已经将其链接到提供的DNS,格式为dashboard.example.com

localhost和/或该端口不适用于Heroku,因此我不确定将其更改为什么才能正常工作。我已经尝试将域更改为xxx.herokudns.com,将端口更改为process.env.PORT,将域更改为我在Heroku中设置的自定义域,但是当我运行时,它们都导致应用崩溃,状态为503访问该URL。

据我所见,这些代码中使用了配置域和端口:

const express = require("express");
const app = express();
const passport = require("passport");

passport.use(new Strategy({
    clientID: client.appInfo.id,
    clientSecret: config.dashboard.oauthSecret, //from configuration
    callbackURL: config.dashboard.callbackURL, //from configuration
    scope: ["identify", "guilds"]
  }
...
app.locals.domain = config.dashboard.domain;
...
app.listen(client.config.dashboard.port);

那我如何从Heroku访问Web应用程序?

1 个答案:

答案 0 :(得分:0)

当您收到503时,是否要检查Heroku日志?他们应提供有关导致崩溃的原因的特定信息。

域应为dashboard.example.com,端口应为process.env.PORT。更好的是,使用dotenv和.env文件在本地定义环境变量,并使用Heroku的“设置”标签在生产环境中设置环境变量(在这种情况下,仅为domain – {{1 }}已在每次启动应用时为您设置。