Express连接MongoDB遇MongooseServerSelectionError错误求助
解决Mongoose连接本地MongoDB出现ECONNREFUSED错误
问题概述
使用Express + Mongoose连接本地MongoDB时,出现MongooseServerSelectionError: connect ECONNREFUSED ::1:27017错误,无法正常建立连接。
用户代码:
import express from 'express' const app = express(); const port = process.env.PORT || 8000; import mongoose from 'mongoose'; mongoose.connect("mongodb://localhost:27017/schooldb").then(() => { console.log("connection successfully "); }) app.get('/', (req, res) => { res.send('Hello user') }) app.listen(port, () => { console.log(`listening at port http://localhost:${port}`); })
解决方案
1. 确认MongoDB服务已启动
- Windows:按下
Win + R输入services.msc,找到MongoDB服务,确保状态为「正在运行」,未启动则右键选择「启动」。 - macOS:若用Homebrew安装,执行命令:
brew services start mongodb-community - Linux:执行命令:
sudo systemctl start mongod
2. 强制使用IPv4地址连接
错误中显示连接的是IPv6地址::1,部分MongoDB默认仅监听IPv4,将连接字符串修改为:
mongoose.connect("mongodb://127.0.0.1:27017/schooldb").then(() => { console.log("connection successfully "); })
3. 验证MongoDB端口配置
确认MongoDB使用的是默认端口27017,若修改过配置文件(如mongod.conf),需同步修改连接字符串中的端口号。
4. 检查防火墙/安全软件拦截
本地防火墙或杀毒软件可能会阻止27017端口的连接,暂时关闭相关软件测试是否能正常连接。
内容的提问来源于stack exchange,提问作者Gopal kushwah
相关产品推荐
相关产品推荐

