【问题标题】:How should I request API in express SPA implementation?我应该如何在快速 SPA 实施中请求 API?
【发布时间】:2022-08-03 09:34:33
【问题描述】:

我正在使用快速服务器实现 SPA。

服务器正在以下列方式为所有 \'get\' 请求发送 index.html 文件。

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

顺便说一句,我应该如何处理下面的get api请求?我无法收到请求,因为 \'/*\'

app.get(\"/:id\", (req, res) => {
  console.log(req);
});

我认为顺序很重要,所以即使我将两者更改并发送请求也是一样的。 有解决办法吗?

  • 我不确定这是一个好习惯,但您可以通过Accept 标头example 有条件地提供服务

标签: javascript express axios single-page-application


【解决方案1】:

分布式架构

遵循保持简单并进行更干净的部署,我建议您在不同的主机、域、git 存储库等上拥有 spa 和 api

在实际场景中,您的 spa 将使用多个 API,因此在其中一个 API 中托管 spa 并不是最佳选择

检查这个以获得更详细的答案

spa + api = 单体

无论如何,如果您需要在 api 中托管 spa,则需要在静态路由之前注册 api 路由:

app.get("/:id", (req, res) => {
  console.log(req);
});

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

【讨论】:

    【解决方案2】:

    如果您需要在您的 api 中托管您的水疗中心,我认为您应该考虑使用快速控制服务器的 vite ssr。那么你可以使用 app.use("server:port/:id")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2013-02-20
      • 1970-01-01
      • 2017-02-28
      相关资源
      最近更新 更多