【问题标题】:react and node js serving from single port endpoint not found未找到从单端口端点服务的反应和节点 js
【发布时间】:2021-09-02 14:19:41
【问题描述】:

我正在用 react 和 node 制作一个简单的应用程序。在反应方面,我创建了一个带有唯一 ID 的便笺,然后可以在 mypage.com/unique-id 上找到该便笺,使用加载组件中的 react-router-dom 和 useEffect 从数据库中获取数据。只要我的前端和后端从不同的端口提供服务,这就是完美的。当我构建 react 应用程序并将其放置在我的 nodejs 应用程序中时,该应用程序将正常工作,直到我重新加载 mypage.com/unique-id 然后我在服务器端遇到 404。我对正在发生的事情有一点了解 - 一切都从 localhost:3001/ 提供服务,所以当我重新加载 localhost:3001/unique-id 时,我的服务器正在寻找一个路由,这在我的服务器端不存在.我不知道如何将这些点连接起来以在 localhost:3001/unique-id 为我的前端页面提供来自服务器的该唯一 ID 的数据。如果我在我的服务器端创建一个路由,它只会发回原始数据而不提供假设 ot 位于 localhost:3001/unique-id 的页面

【问题讨论】:

  • 看起来像添加 app.use('/:id', express.static('build'));作品

标签: node.js reactjs


【解决方案1】:

我遇到了同样的问题,通过在路由中添加 * 得到了解决

路线前

app.get("/", (req, res) => {
    res.header("Cache-Control", "max-age=-1");
    res.header("Expires", "-1");
    res.header("Pragma", "no-cache");
    res.sendFile(path.join(__dirname, "build/index.html"));
});

之后

app.get("/*", (req, res) => {
    res.header("Cache-Control", "max-age=-1");
    res.header("Expires", "-1");
    res.header("Pragma", "no-cache");
    res.sendFile(path.join(__dirname, "build/index.html"));
});

【讨论】:

  • 注意:请记住,这应该是 express 的最后一条路线,否则下面的路线也会从 react 中获得服务
猜你喜欢
  • 2020-09-09
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多