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

Node.js/Axios无法连接本地Nano节点,报错ECONNREFUSED

解决Node.js调用本地Nano节点RPC出现ECONNREFUSED的问题

这种curl能正常跑但Node.js脚本连不上的情况确实挺让人头疼的,不过咱们可以从几个常见方向一步步排查,总能找到问题所在:

1. 确保axios请求和curl的逻辑完全匹配

curl用-d参数发送的是POST请求,且数据是JSON格式,你得保证axios的配置和这个逻辑完全对齐:

  • 一定要用axios.post而不是get
  • 明确设置Content-Type: application/json请求头
  • 记得给URL加上http://前缀——有时候axios对纯localhost:7076的解析会出问题

修正后的示例代码:

const axios = require('axios');

async function fetchAccountBalance() {
  try {
    const response = await axios.post('http://localhost:7076', {
      action: 'account_balance',
      account: 'xrb_1aaprwcu9fac1tw3wesud5txb1zuiroti5xfr19bwozitjnnmbcbwpr1w95f'
    }, {
      headers: {
        'Content-Type': 'application/json'
      },
      // 禁用代理,避免系统代理干扰本地请求
      proxy: false
    });
    console.log('账户余额:', response.data);
  } catch (error) {
    // 打印完整错误细节,方便定位问题
    console.error('请求失败:', error.message);
    console.error('请求配置:', error.config);
  }
}

fetchAccountBalance();

2. 排查本地节点的RPC绑定与拦截问题

  • 核对Nano节点的RPC绑定地址:检查节点配置文件里的rpc_bind_address项,确保它确实绑定在127.0.0.1:7076,没有误设成外网IP之类的其他地址
  • 检查防火墙/安全软件:有些系统防火墙会拦截Node.js发起的本地请求,但curl可能被默认放行。可以临时关闭防火墙测试,或者给Node.js添加允许访问本地7076端口的规则

3. 检查配置文件与依赖版本

  • 核对你的config.js:确保里面的RPC地址、端口和curl用的localhost:7076完全一致,没有拼写错误
  • 更新axios依赖:旧版本的axios可能存在兼容性问题,执行npm update axios升级到最新稳定版

4. 验证请求的一致性

在catch块里打印error.config,和curl的请求参数做对比:

  • 确认请求方法是POST
  • 确认请求体的JSON结构和curl里的完全相同
  • 确认目标地址没有被意外修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:25:12