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

Express的app.get()中*路由是什么含义?和/路由作用相同吗?

关于Express中*通配符路由的说明

*路由的含义

你贴的这段是PERN栈生产部署的标准配置,其中app.get("*")里的*是Express的路由通配符,代表匹配所有未被前面路由匹配到的GET请求路径。

这段逻辑是为了适配React这类单页应用(SPA)的前端路由:

  1. 首先express.static会优先匹配build目录下的静态资源(打包后的JS、CSS、图片等),匹配到就直接返回,不会走到后续路由
  2. 剩下的所有请求,不管你访问的是/profile、/dashboard/settings这类前端路由,都会返回React打包出来的index.html,把路由控制权交给前端的React Router处理,避免用户刷新非根路径页面时出现404。

和/路由的区别

二者作用完全不同,核心差异是匹配范围:

  • 路径为/的路由只能匹配根路径的GET请求,只有用户直接访问站点根域名时才会触发。如果用户访问/about这类子路径,根本匹配不到/路由,会直接返回404,完全满足不了SPA前端路由的部署需求
  • *是兜底路由规则,只有前面所有路由(接口路由、静态资源规则)都没匹配到的时候才会触发,既不会干扰后端接口的正常响应,又能覆盖所有前端路由场景。

注意:*通配符路由必须放在所有路由定义的最后位置,要是写在接口或者其他路由前面,会优先匹配*导致后面的路由全部失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:51:03