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

Node v17连接已运行的MongoDB时抛出MongooseServerSelectionError报错

问题根因

你遇到的报错是Node.js 17版本的默认DNS解析规则变更导致的:Node 17及以上版本默认优先解析域名的IPv6地址,你配置的连接地址是localhost,在macOS下会被优先解析为IPv6的回环地址::1,但你本地运行的MongoDB默认只监听IPv4的回环地址127.0.0.1,所以连接::1:27017会被拒绝。

解决办法

有三个常用的修复方案,任选其一即可:

方案1:直接修改Mongo连接URI为IPv4地址

把配置里的localhost替换成127.0.0.1,强制走IPv4连接,改动最小优先推荐:

"mongoURI": "mongodb://127.0.0.1:27017/ticketDB"

方案2:修改MongoDB配置开启IPv6监听

编辑MongoDB的配置文件,Intel芯片Mac默认路径为/usr/local/etc/mongod.conf,M系列芯片Mac默认路径为/opt/homebrew/etc/mongod.conf,找到net配置段调整为如下内容:

net:
  port: 27017
  bindIp: 127.0.0.1, ::1
  ipv6: true

修改后重启MongoDB服务生效:

brew services restart mongodb-community

方案3:启动Node应用时添加IPv4优先参数

启动Node服务时添加--dns-result-order=ipv4first参数,强制Node优先解析IPv4地址,例如原启动命令为node server.js,修改为:

node --dns-result-order=ipv4first server.js

验证方法

修改完成后重启Node应用,控制台输出mongo db connected日志即代表连接成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:45:10