使用Node.js MongoClient无法连接MongoDB的问题求助
问题原因与解决方案
核心原因
错误里的::1是IPv6格式的localhost地址,你的MongoDB服务器大概率只绑定了IPv4的127.0.0.1,没有监听IPv6地址。而Node.js解析localhost时优先使用IPv6的::1,导致连接被拒绝;但MongoDB Compass、VS Code扩展这类工具可能默认用IPv4的127.0.0.1连接,所以能正常访问。
快速解决办法
方法1:修改连接URI(推荐,无需改MongoDB配置)
把代码里的localhost换成127.0.0.1,强制使用IPv4连接:
const { MongoClient } = require('mongodb'); // 替换localhost为127.0.0.1 const uri = 'mongodb://127.0.0.1:27017/'; const client = new MongoClient(uri); client.connect((err) => { if (err) { console.error(err); return; } console.log('Connected to MongoDB'); // ... continue with my code });
方法2:修改MongoDB配置,同时监听IPv4和IPv6
如果需要保留localhost的写法,可以修改MongoDB的配置文件:
- 找到MongoDB的配置文件(Windows通常在
C:\Program Files\MongoDB\Server\对应版本号\bin,Linux/macOS可能在/etc/mongod.conf或/usr/local/etc/mongod.conf) - 找到
net模块,修改bindIp的值为0.0.0.0,::,表示同时绑定所有IPv4和IPv6地址:
net: port: 27017 bindIp: 0.0.0.0,::
- 重启MongoDB服务,之后Node.js用
localhost就能正常连接了
内容的提问来源于stack exchange,提问作者soullmond .F
相关产品推荐
相关产品推荐

