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

Express + NodeJS项目普通路由访问返回404错误问题求助

Express 路由访问404问题解决步骤

可按以下顺序逐一排查:

  • 重启服务验证
    修改路由文件后必须重启Node进程才能生效,终止当前服务后重新执行npm start或node app.js启动项目,再尝试访问http://localhost:3000/all。
  • 校验模板文件状态
    检查views目录下是否存在all_hotels.pug文件,确认文件名拼写、大小写完全匹配,模板文件缺失/拼写错误在部分版本组合下会触发404报错。
  • 排除路由冲突
    如果项目中存在其他动态路由,比如:params格式的路由,必须确保静态路由/all的定义在动态路由之前,否则动态路由会优先匹配,将all识别为参数值,导致静态路由不生效。你当前提供的代码不存在该问题,若后续新增路由需注意顺序。
  • 调试请求链路
    在app.js中静态资源中间件之后、路由注册之前添加日志中间件,确认请求链路正常:
app.use(express.static(path.join(__dirname, 'public')));
// 新增调试日志
app.use((req, res, next) => {
  console.log('请求路径:', req.path)
  next()
})
app.use('/', indexRouter);

重启服务后访问对应路径,若控制台无日志输出,说明你访问的端口与服务实际启动端口不一致,或存在其他代理服务拦截了请求。

  • 排除模板渲染故障
    临时修改/all路由逻辑,跳过模板渲染直接返回响应:
router.get('/all', function(req, res) {
  res.send('路由匹配成功')
})

如果访问后能正常收到返回内容,说明路由本身无问题,问题出在Pug模板配置或文件本身,再针对性排查模板相关配置即可。

内容的提问来源于stack exchange,提问作者Cristian Ștefan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:24:03