MongoDB运行正常时Mongoose.connect连接失败问题求助
问题原因
报错核心为Node.js环境会优先将localhost解析为IPv6地址::1,但默认启动的MongoDB服务仅监听IPv4的127.0.0.1地址,两端地址不匹配导致连接被拒绝。
解决方法
你可以任选以下任意一种方案修复:
- 方案1(最便捷):将连接地址中的
localhost直接替换为IPv4本地地址127.0.0.1
修改后的连接代码:mongoose.connect('mongodb://127.0.0.1:27017/testdb').then(() => { console.log("Connected to Database"); }).catch((err) => { console.log("Not Connected to Database ERROR! ", err); }); - 方案2:在Mongoose连接参数中指定强制使用IPv4解析域名
代码示例:mongoose.connect('mongodb://localhost:27017/testdb', { family: 4 }) - 方案3:修改MongoDB服务配置,使其同时支持IPv4和IPv6连接
找到MongoDB安装目录下的mongod.cfg配置文件,修改bindIp配置项为:
保存后重启MongoDB服务即可。bindIp: 127.0.0.1,::1
修改完成后重新运行nodemon app.js即可正常连接数据库。
内容的提问来源于stack exchange,提问作者Venkat Lohith Dasari
相关产品推荐
相关产品推荐

