首页 > 解决方案 > 在不提供 html 文件的单页应用程序中创建一个端点

问题描述

我正在使用 express 来制作服务器。

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

对于每个端点,我提供相同的 HTML。我在客户端处理路由。如何制作一个端点,使其不服务器“index.html”。我尝试添加

app.get("/abc", (req, res) => {
    res.json(some data);
});

但它发送 index.html 文件

标签: expressserverroutessingle-page-application

解决方案


Express 基本上检查请求的路线是否与您指定的路线匹配(从上到下)。如果是这样,它将遵循给定的说明。您指定的第一条路线/*意味着它将匹配GET用户要求的任何请求。由于它找到了一个匹配,它不会继续检查其他路由。因此,您希望在最后指定这样的路由,以便它首先检查其他路由。

app.get("/abc", (req, res) => {
    res.json({"key": "value"});
});

/*
    This route has to be placed at the end
    (just before the listener)
 */
app.get("/*", (req, res) => {
    res.sendFile("index.html");
});

推荐阅读