Node.js中的Heroku自定义DNS API路由问题

时间:2019-04-25 17:26:02

标签: javascript node.js express heroku routes

我在Heroku中设置了一个自定义域,效果很好。 我可以使用我的应用名称和自定义域来访问我的网站。 我可以使用标准的Heroku URL访问路由,但不能使用自定义域。

例如:

作品:

https://{myappname}.herokuapp.com
https://{myappname}.herokuapp.com/callback
https://{customdomain}.com

不起作用:

https://{customdomain}.com/callback

服务器配置:

const express = require("express");
const path = require("path");;
const callback = require("./callback");
const app = express();

// Body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Serve static assets if in production
 if (process.env.NODE_ENV === "production") {
  app.use("/callback", callback);

// Set static folder
  app.use(express.static("client/build"));

  app.get("*", (req, res) => {
   res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
 });
}

// Init server/port
const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server running on port ${port}`));

2 个答案:

答案 0 :(得分:2)

我知道为时已晚,但我是为将来遇到此问题的人而写的。

我也遇到了这个问题并通过这个解决了。

不工作

https://{customdomain}.com/callback

这对我有用。

https://www.{customdomain}.com/callback

答案 1 :(得分:0)

我发现这很简单,而且我很愚蠢,但是如果有人遇到相同的问题,我会在这里回答。

问题:

我有一个称为Callback的React路由/组件。这个React组件正在调用Node.js路由(也称为回调),该路由处理信息,然后重定向到新的React路由/组件。

简单的解决方法是将我的React路由/组件更改为callbackPage,而将Node.js路由保留为Callback。

因此,总而言之,我有一个与服务器API路由同名的网页URL。当我访问此页面时,没有运行页面,而是运行了API路由,并且基本上什么也不做并且超时。我仍然对为什么它可以与我的应用程序URL而不与我的自定义域一起使用感到困惑。