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

Express应用无法连接localhost:27017本地MongoDB服务报错ECONNREFUSED

问题原因

报错核心字段为connect ECONNREFUSED ::1:27017:
Node.js 17.0.0及以上版本调整了localhost的默认DNS解析优先级,会优先返回IPv6环回地址::1发起连接;但本地默认安装的MongoDB服务仅绑定IPv4环回地址127.0.0.1,没有在IPv6的27017端口提供监听,因此连接被直接拒绝。
你能通过mongosh正常操作数据库,是因为mongosh默认优先将localhost解析为IPv4地址,和新版Node.js的解析逻辑不一致,和代码逻辑、驱动安装、服务运行状态无关。

修复方案

任选一种即可:

  • 最简便方案:修改数据库连接字符串,将localhost替换为127.0.0.1强制走IPv4连接,修改后的database.js连接逻辑如下:
async function connect() {
  const client = await MongoClient.connect("mongodb://127.0.0.1:27017");
  database = client.db("blog");
}

修改后保存文件,nodemon会自动重启应用,连接即可恢复正常。

  • 无代码修改方案:调整MongoDB配置,让服务同时监听IPv4和IPv6地址。找到MongoDB安装目录下的mongod.conf配置文件,修改net.bindIp配置项为127.0.0.1,::1,保存后重启MongoDB服务即可。
  • 启动参数方案:启动Node应用时追加参数指定DNS解析顺序,强制优先使用IPv4,启动命令示例:
node --dns-result-order=ipv4first app.js

如果使用nodemon,需要将该参数配置到package.json的start脚本中,该方案不需要改代码或数据库配置,但每次启动都需要携带对应参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:54:25