一些 Express.Router() 路由不执行中间件函数

2024-01-15

我正在尝试解决 Express.router() 的实现问题,而不是触发分配给它的中间件函数。 我编写了一个相当大的应用程序,并尝试向我的路径添加更多端点,但由于某种原因,第 9 条路线被加载但没有触发该功能。

app.js

server.use(cors());
server.use(function (req, res, next) {
  next();
});
server.use("/", express.static("./assets"));
server.use("/api", api);
server.use("/debug", debug);
server.use("/config", config);
server.use("/control", control);
server.use("/tools", files);

这就是我用各自的函数声明我的路线的地方。

router.get("/teams", onGetTeams);
router.get("/players", onGetPlayers);
router.get("/achievements", getTop3);
router.get("/xpression", onXprPayload);
router.get("/snapshot", onRequestSnapshot);
router.get("/round-timeline", onRequestTimelinePayload);
router.get("/:half", onRequestHalf);
router.get("/dashboard-message", onSetDashboardMessage);
router.get("/get-match-odds", getTeamOdds);
function getTeamOdds(req, res) {
  console.log("Sent odds");
  res.json(odds);
  res.end();
}

当我发出最后一条路线的请求时,该函数不会执行,并且我收到 200 响应。

我错过了什么大事吗?

谢谢 !


您的路线定义在这里:

router.get("/:half", onRequestHalf);

是匹配所有路由的通配符路由,因此除非该特定路由调用,否则不会调用它之​​后的任何路由next()继续路由。

由于这个原因,顶级通配符路由是有问题的。我建议避免使用它们。有一些临时的解决方法,例如将其定义移至最后一个顶级路由定义,但它们仍然可能限制定义未来的路由,因为它们是如此贪婪。

我的建议是不要将其设为顶级路线:

router.get("/half/:half", onRequestHalf);

因此,它不会与其他顶级路由冲突,并且它本质上拥有自己的 URL 范围。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一些 Express.Router() 路由不执行中间件函数 的相关文章

随机推荐

  • C++ 作为一种抽象,是否支持表示两个以上值之一的“位”?

    C 11 1 7 谈论bytes就位而言 C 内存模型中的基本存储单位是字节 一个字节至少足够大以包含基本执行字符集 2 3 的任何成员和 Unicode UTF 8 编码形式的八位代码单元 并且由连续的位序列组成 其数量为实现定义的 最低
  • 如何在 rpm 构建中包含 pip 包

    我想包含一个 Python 包依赖项 使用安装pip3 install in an rpm包裹 我无法安装使用dnf因为它的版本已经过时了 rpm如果我使用安装依赖项 则会返回以下错误pip3 install error Failed de
  • 验证英国电话号码(Regex C#)

    public static bool ValidatePhoneNumber string number return Regex Match number 44 s 7 d 3 07 d 3 s d 3 s d 3 RegexOption
  • 如何使用 POeditor 将新字符串添加到 *.po 文件

    我手动创建了一个文件 test po 其内容为 msgstr 问候语 msgstr 你好世界 现在我可以在 poedit 和 GTranslated 等编辑器中编辑翻译 hello world 我使用的是 Ubuntu 我什至可以为翻译添加
  • 在 GroupBy 操作之后,如何从 Spark DataFrame 列收集字符串列表?

    所描述的解决方案here https stackoverflow com questions 31640729 spark sql replacement for mysql group concat aggregate function
  • Matlab中最小化简单目标的最佳方法

    What is the best way of finding the shift along the x axis for the blue line in this image such that it matches the red
  • 无法在浏览器上打开 jupyter(ipython) 笔记本

    我在用着python3 5 and jupyter 4 0 6 我推出了jupyter notebook 并得到以下输出 I 21 47 27 021 NotebookApp Serving notebooks from local dir
  • 如何在 git 的历史记录中查找包含提交的所有引用

    假设你在 git 中有以下结构 A lt refs heads somebranch B C D lt refs tags TAG1 E F G H I lt refs heads branch1 J lt refs heads maste
  • 通知和警报管理器

    我知道这个问题已经被问过好几次了 但我真的不明白为什么我的代码不起作用 我基于很多示例 来自 stackoverflow 答案 来编写我的代码 我需要帮助来理解问题出在哪里 上下文 用户可以根据偏好选择通知的日期 我得到一个从 2 星期一
  • 如何检查整数是否可以转换为枚举类型值?

    我定义了一个InRange我的枚举器类型上的函数 该函数应该返回True传入的整数参数是否可以转换为枚举类型 TMyEnum eA eB TMyEnumHelper record helper for TMyEnum class funct
  • .NET 中的身份验证、授权、用户和角色管理以及一般安全性

    我需要知道如何为 C 应用程序实现一般安全性 在这方面我有哪些选择 如果现有的框架满足我的需求 我更愿意使用它 我不想重新发明轮子 我的要求如下 通常的用户名 密码身份验证 用户管理 为用户分配权限 角色管理 将用户分配给角色 将权限分配给
  • 在 Windows 上学习 IOCP 的资源

    我最近意识到 Windows 上有一个名为 IOCP 的东西 我开始搜索有关它的更多信息 但我找不到任何最新的信息 大多数示例都在差不多 5 年前的 codeproject 上 并且没有太多指南或教程 任何人都可以以在线教程或示例项目 您编
  • 为什么 Unity 会卡在 Application.EnterPlayMode 上?

    我正在尝试使用柏林噪声和统一的行进立方体来创建程序地形生成器 它一直有效 直到我从创建高度图切换到将其制作成 3d 数组 然后 每当我单击播放时 Unity都会打开一个对话框 其中写入了Application EnterPlayMode 该
  • 为什么 Rust 不支持重载函数或方法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 java中的方法重载是一个非常有用的特性 有时 我们需要定义具有相同名称但具有不同参数集的函数 我想知道为什么 Rust 不支持这个功能 我认为
  • 如何在 Scala 中进行转换?

    例如假设我有 val myDouble 25 7 val myInt 5 我会怎么做类似的事情 val divide Int myDouble myInt 你可以做 myDouble myInt toInt 你也可以做toDouble to
  • tensorflow:reshape()可以创建副本吗?

    在他们的 API v4 中 torch 引入了reshape 更加符合 numpy 的风格 以前 改变火炬张量的形状是通过view 我想知道是否view 现在将被弃用并查看docs https pytorch org docs stable
  • 如何更新 Google Drive v3 PHP 中的文件

    我似乎无法使用以下代码更新谷歌驱动器中的文件 一切正常 但文件保持不变 我正在使用 v3 api function updateFile service fileId data try emptyFile new Google Servic
  • 将类应用于 br 标签? [复制]

    这个问题在这里已经有答案了 以下是有效的 HTML 吗 br class something 作为一个 HTML 元素 我不明白为什么它不会 但我认为我从未见过它被使用 Yes See 规格 https www w3 org TR html
  • tkinter 中的按钮命令选项

    在下面的小 GUI 应用程序中 当我使用按钮的命令选项来调用函数时 它不是这样工作的 self update 相反 它的工作原理如下 self update 为什么这样 按钮的命令选项是否有某种特殊的工作方式 我认为应该用这些大括号调用方法
  • 一些 Express.Router() 路由不执行中间件函数

    我正在尝试解决 Express router 的实现问题 而不是触发分配给它的中间件函数 我编写了一个相当大的应用程序 并尝试向我的路径添加更多端点 但由于某种原因 第 9 条路线被加载但没有触发该功能 app js server use