我正在关注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应用程序?
答案 0 :(得分:0)
当您收到503时,是否要检查Heroku日志?他们应提供有关导致崩溃的原因的特定信息。
域应为dashboard.example.com
,端口应为process.env.PORT
。更好的是,使用dotenv和.env文件在本地定义环境变量,并使用Heroku的“设置”标签在生产环境中设置环境变量(在这种情况下,仅为domain
– {{1 }}已在每次启动应用时为您设置。