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

MERN项目实现教程中遭遇GET /hello 404(Not Found)错误求助

排查MERN项目中GET /hello 404错误的步骤

看起来你已经把前后端的基础配置搭起来了,404错误通常是请求路径不匹配或者服务端口不对导致的,咱们一步步来排查:

1. 先确认后端服务的运行端口

前端package.json里的proxy已经指向了http://localhost:5000,那得先确保后端确实在5000端口跑着:

  • 打开后端项目的bin/www文件(Express项目默认的启动入口),找到端口配置代码:
    var port = normalizePort(process.env.PORT || '5000');
    app.set('port', port);
    
    如果这里的端口不是5000,要么把后端改成5000,要么把前端proxy里的端口改成后端实际用的数值。

2. 直接测试后端接口是否可用

打开浏览器或者Postman,直接访问http://localhost:5000/hello:

  • 如果能看到返回的"hello world",说明后端接口没问题,问题出在前端的proxy配置或者请求转发上;
  • 如果还是404,那得检查后端的路由挂载:
    • 确认后端app.js里app.use('/', indexRouter)这行代码没有写错路径;
    • 检查routes文件里的router.get('/hello')是否正确导出,有没有被其他中间件(比如错误处理)拦截了请求。

3. 确保前端proxy配置生效

proxy配置修改后必须重启前端开发服务器才会生效!如果你修改完package.json后没重启npm start,那前端的请求根本不会转发到后端5000端口,自然会报404。重启后再试试请求。

4. 检查前端请求的路径格式

你的代码里写的是axios.get('/hello')(开头带斜杠),这个是对的——它代表根路径下的/hello,会被proxy转发到后端的5000/hello。如果写成axios.get('hello')(不带斜杠),就会变成相对当前页面的路径,肯定找不到接口。

额外测试建议

如果以上步骤都没问题,可以临时把前端的请求改成完整URL:

axios.get('http://localhost:5000/hello')

如果这次能成功,说明proxy配置有问题;如果还是失败,那肯定是后端服务没正常启动或者路由配置有误,去后端控制台看看有没有报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 21:48:13