You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Express路由排除/api路径以避免无限循环?

解决全局页顶脚本无限调用/api接口的问题

嘿,太懂你这种踩坑的憋屈感了——全局运行的页顶脚本不小心在/api路径下也触发,结果自己调用/api接口,直接陷入无限循环,头都大了对吧?

其实根本不用复杂的正则,用最简单的路径前缀判断就能搞定,代码还超精简:

// 只在非/api开头的页面执行你的页顶逻辑
if (!window.location.pathname.startsWith('/api/')) {
  // 这里放你的页顶程序代码
}

如果你项目里习惯用正则做路由判断,那得确保正则精准匹配以/api/开头的路径,再取反执行逻辑:

// 正则匹配所有/api/开头的路径,取反后就是我们要放行的页面
const isApiPage = /^\/api\/.*$/.test(window.location.pathname);
if (!isApiPage) {
  // 运行页顶程序
}

之前你正则没成功,大概率是没写对匹配规则——比如漏了开头的^(表示从字符串起始位置匹配),或者没转义斜杠?上面这个正则是精准锁定所有以/api/开头的路径,不会误判其他包含api字符的页面。

相比正则,startsWith方法更直观,代码也更短,完全满足你“尽可能精简路由”的需求,推荐优先用这个方案~

内容的提问来源于stack exchange,提问作者OhkaBaka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:32:18