React与Express应用间代理配置失效 请求无法转发至Node服务
解决方案
1. 修复服务端启动配置
你标注的服务端配置文件命名错误,当前是server/index.json,实际为JavaScript代码,需重命名为server/index.js。
同时服务端package.json中的启动脚本路径错误,原脚本默认在根目录查找index.js,需修改为对应路径:
"server": "nodemon server/index.js --ignore client"
该问题会导致Express服务根本没有正常启动,是触发ECONNREFUSED代理错误的核心原因。
2. 修复fetch语法错误
App.js中调用响应json方法时遗漏了括号,属于语法错误,会触发请求500报错:
// 错误写法 .then(res => res.json) // 正确写法 .then(res => res.json())
3. 调整代理配置
客户端package.json中的proxy配置去掉末尾斜杠,避免路径匹配异常:
"proxy": "http://localhost:5000"
4. 统一启动命令
服务端package.json的dev脚本当前使用yarn命令,若你实际使用npm执行启动,需替换为npm对应命令:
"dev": "concurrently --kill-others-on-fail \"npm run server\" \"npm run client\""
同时需确保客户端package.json中存在client启动脚本,若客户端代码存放在client文件夹下,可补充配置:
"client": "cd client && npm start"
验证步骤
- 先单独执行
npm run server,确认终端打印服务启动日志,浏览器直接访问http://localhost:5000/hello可正常返回JSON数据。 - 单独启动客户端验证可正常访问后,再使用
npm run dev同时启动两个服务。
内容的提问来源于stack exchange,提问作者Josh Simon
相关产品推荐
相关产品推荐

