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

NodeJS无法向本地Elixir/Phoenix API发送请求求助

解决方案:NodeJS请求Phoenix API遇ECONNREFUSED问题

核心原因

你的Phoenix API绑定的是IPv4地址127.0.0.1,但NodeJS解析localhost时优先使用IPv6地址::1,导致请求尝试连接未被监听的::1:4000,触发连接拒绝错误。

具体解决办法

  • 直接指定IPv4地址发起请求
    将NodeJS代码中请求URL的localhost替换为127.0.0.1,比如把http://localhost:4000/api/xxx改成http://127.0.0.1:4000/api/xxx,让请求直接命中Phoenix绑定的IPv4地址。

  • 强制NodeJS优先使用IPv4解析
    启动NodeJS应用时添加参数--dns-result-order=ipv4first,示例命令:

    node --dns-result-order=ipv4first your-discord-bot.js
    

    这样NodeJS解析localhost时会优先返回IPv4的127.0.0.1,匹配Phoenix的监听配置。

  • 让Phoenix同时监听IPv4和IPv6地址
    修改config/dev.exs中的Endpoint配置,把绑定IP改为同时包含IPv4和IPv6的localhost:

    config :your_app, YourAppWeb.Endpoint,
      http: [ip: [127.0.0.1, "::1"], port: 4000],
      # 保留其他原有配置项
    

    修改完成后重启Phoenix服务,此时服务会同时监听127.0.0.1:4000和::1:4000,NodeJS无论用哪种地址解析都能成功连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:25:19