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

使用Node.js与React开发时出现ECONNREFUSED代理错误是为什么

错误本质说明

这个报错中的ECONNREFUSED是连接被拒绝的系统错误,指的是React开发服务器尝试将/api/auth请求从本地5000端口代理转发到http://localhost:3000时,无法和目标端口建立连接,所以抛出了代理错误。

触发原因
  • 你大概率是用了并行启动工具同时运行前端和后端服务,两者的启动速度存在差异:React热编译的速度远快于后端服务的启动速度,从你给出的日志可以看到,React已经提示Compiled successfully编译完成时,nodemon才刚启动server.js,后端服务还在初始化阶段,3000端口尚未进入监听状态,此时如果前端有初始化请求发出,就会触发代理失败的报错。
  • 等后端服务初始化完成、3000端口正常监听后,后续的所有请求都可以正常转发,这就是你日常使用时功能、数据库交互都没有问题的原因,该报错只会出现在服务重载、两个服务启动不同步的瞬间。
  • 你怀疑的请求缺少http协议前缀的问题并不存在,从报错日志可以看到代理的目标地址已经带有完整的http前缀,代理配置本身没有错误。
可选修复方案

如果不想再看到这个偶发报错,可以选择以下任意一种方式处理:

  • 调整服务启动顺序,先启动后端服务,等待3000端口正常监听后再启动React前端服务,避免两个服务并行启动的时序差
  • 如果使用setupProxy.js配置代理,可以给代理规则添加超时重试参数,给后端预留足够的启动时间:
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:3000',
      changeOrigin: true,
      proxyTimeout: 3000,
      retry: 3,
    })
  );
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:45:03