【发布时间】:2019-09-27 13:33:10
【问题描述】:
我关注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 或通过我已经链接到提供的 DNS 的自定义域访问 Web 仪表板,格式为 dashboard.example.com。
localhost 和/或该端口不适用于 Heroku,因此我不确定将其更改为什么才能使其正常工作。我已经尝试将域更改为xxx.herokudns.com,将端口更改为process.env.PORT,将域更改为我在 Heroku 中设置的自定义域 - 但是当我访问 URL 时,它们都会导致应用程序崩溃,状态为 503。
据我所知,这些代码中使用了配置域和端口:
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 应用程序?
【问题讨论】:
-
当您收到 503 时,您是否正在检查您的 Heroku 日志?域应为
"dashboard.example.com",端口应为process.env.PORT。更好的是,使用dotenv 和.env文件在本地定义您的环境变量,并使用Heroku 的“设置”选项卡来设置生产环境变量(在这种情况下,只是domain-port已经设置在每次应用启动时为您服务)。 -
感谢您的建议,这确实有效。如果您介意,请回答问题,以便我将其标记为已解决!
-
很高兴它有帮助!
标签: node.js express heroku discord.js