express - 在不提供 html 文件的单页应用程序中创建一个端点
问题描述
我正在使用 express 来制作服务器。
app.get("/*", (req, res) => {
res.sendFile("index.html");
});
对于每个端点,我提供相同的 HTML。我在客户端处理路由。如何制作一个端点,使其不服务器“index.html”。我尝试添加
app.get("/abc", (req, res) => {
res.json(some data);
});
但它发送 index.html 文件
解决方案
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");
});
推荐阅读
- vue.js - 用于标题大小写的 Vue JS 过滤器
- javascript - 隐藏和显示 div 不起作用,当我使用 console.log() 但不显示时,元素会更改其属性
- machine-learning - 为什么不同的股票可以合并在一起建立一个单一的预测模型?
- javascript - 待办事项编辑功能
- php - PHP数组排序前3名
- math - 四元数到矩阵只旋转一个轴
- gradle - 在模块中找到重复的类
- javascript - 如何禁用
- 使用 ng-class 标记?
- r - 是否有用于反转广告存货值或将广告存货转换值转换为其预转换状态的 R 函数?
- excel - 将网页抓取转换为 excel?