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

Express JS (Node) 为路由添加前缀功能不生效问题咨询

问题分析
  • 路由挂载对象错误:代码中在apiRouter的中间件回调内给根app实例注册/auth路由,该路由实际挂载在服务根路径下,仅可通过/auth访问,和/api前缀无关联。
  • 路由注册时机错误:apiRouter.use('/api', callback)的回调仅在匹配到/api路径的请求进入时才会执行,首次访问/api/auth时,/auth路由还未完成注册,因此返回404。
  • 路由实例未挂载:创建的apiRouter实例未通过app.use挂载到根应用上,Express默认不会处理该实例下的任何路由。
修复方案

推荐使用挂载Router时指定统一前缀的实现,逻辑更清晰易维护:

const express = require('express');
const app = express();
const apiRouter = express.Router()

// 路由实例内仅定义子路由路径
apiRouter.get('/auth', (req, res) => {
  res.send("Auth route")
})

// 挂载路由实例时指定统一前缀,所有子路由自动拼接此前缀
app.use('/api', apiRouter)

// 启动服务监听端口
app.listen(3000, () => {
  console.log('服务运行在3000端口')
})

修改完成后访问/api/auth即可得到预期响应。

内容的提问来源于stack exchange,提问作者Wai Yan Hein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 10:18:16