Node.js连接MongoDB报错connect ECONNREFUSED ::1:27017求助
Node.js连接MongoDB出现ECONNREFUSED ::1:27017错误
我已尝试Stack Overflow上针对相关问题的所有解决方案,本地MongoDB服务运行正常,MongoDB Compass可成功连接localhost,但Node.js应用连接时出现如下错误:


错误日志:
[nodemon] starting `node server.js` server is running on port 5000 error in conntecting with mongoDB MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 at _handleConnectionErrors (C:\Ankur PC Lenovo\backend Project ideas\blog-api\Blog-API-using-Node.js-\node_modules\mongoose\lib\connection.js:909:11) at NativeConnection.openUri (C:\Ankur PC Lenovo\backend Project ideas\blog-api\Blog-API-using-Node.js-\node_modules\mongoose\lib\connection.js:860:11) at runNextTicks (node:internal/process/task_queues:65:5) at listOnTimeout (node:internal/timers:555:9) at process.processTimers (node:internal/timers:529:7) { reason: TopologyDescription { type: 'Unknown', servers: Map(1) { 'localhost:27017' => [ServerDescription] }, stale: false, compatible: true, heartbeatFrequencyMS: 10000, localThresholdMS: 15, setName: null, maxElectionId: null, maxSetVersion: null, commonWireVersion: 0, logicalSessionTimeoutMinutes: null }, code: undefined }
我已确认所有MongoDB服务均已连接,恳请协助解决该问题。
解决方案
- 替换连接地址为IPv4:错误显示Node.js尝试通过IPv6地址
::1连接,而Compass可能用的是IPv4的127.0.0.1。修改Mongoose连接字符串,把localhost换成127.0.0.1:mongoose.connect('mongodb://127.0.0.1:27017/你的数据库名'); - 检查MongoDB绑定IP配置:打开MongoDB的配置文件(通常是
mongod.cfg),确认net.bindIp设置为127.0.0.1或0.0.0.0(允许所有IP访问),修改后重启MongoDB服务。 - 强制Node.js使用IPv4解析:部分Node.js版本默认优先解析
localhost到IPv6,启动Node时添加参数强制使用IPv4:
或者在package.json的scripts中更新启动命令:node --dns-result-order=ipv4first server.js"start": "node --dns-result-order=ipv4first server.js" - 排查防火墙拦截:确认本地防火墙没有阻止Node.js进程访问27017端口,必要时临时关闭防火墙测试。
- 验证版本兼容性:检查Mongoose版本与MongoDB服务器版本是否匹配,若存在版本差异,尝试升级或降级Mongoose至兼容版本。
内容的提问来源于stack exchange,提问作者Monu Rohilla
相关产品推荐
相关产品推荐

