使用:id参数运行两次来表达get请求



我有一个使用node和express的API,最终目标是将请求中的:id参数存储在一个变量中,以便我可以从我的SQLite数据库中查询具有特定id的特定表。现在,带有:id参数的get请求被运行了两次,一次请求的url是它应该是什么(在我的例子中是"page"),另一次是url/serviceWorker.js。

这是我的路由器的代码与get-request:

import express from "express";
const router = express.Router();
router.get("/:id", function (req, res) {
const id = req.params.id;
console.log("id:", id);
console.log("Req url:", req.url);
res.send(id);
});
export default router

单个get请求的控制台日志如下所示:

id: molekylverkstan
Req url: /molekylverkstan
id: serviceWorker.js
Req url: /serviceWorker.js

即使在运行对我的主页的get请求时,使用以下代码:

router.get("/", function (req, res) {
res.render("../pages/start.ejs");
});

我得到控制台日志:

id: serviceWorker.js
Req url: /serviceWorker.js

我尝试用break(), return和next()打破请求,但没有工作。我的项目中没有服务人员,这让我奇怪为什么它不知道从哪里冒出来的。也许我需要某种服务人员,或者在我的项目中特别说明它不应该寻找一个?

即使你的项目中没有service worker,也可能在你的浏览器中注册了一个你以前在同一个域名/IP地址上运行的项目。

你收到这个请求的原因是你的浏览器不再有有效的service worker缓存版本,并试图重新加载它。但是由于该请求失败了,它会一次又一次地尝试。

要删除它,请打开有问题的网站并检查浏览器开发工具(Application -> Service Workers或chrome和firefox),并注销您不再想要使用的任何service worker。

最新更新