MongoDB 6.0.8本地连接失败求助(附Node.js代码)
问题排查与解决方案
1. 先修复代码中的语法错误
你的代码存在两处语法问题,会直接导致连接逻辑失效:
- 注释格式错误:
DB CONNECTION */和PORT 3000 */是不完整的注释,需改为/* DB CONNECTION */和/* PORT 3000 */ if (!err)代码块缺少闭合的},引发语法报错
修复后的基础代码:
const express = require("express"); const app = express(); const mongoose = require("mongoose"); /* DB CONNECTION */ mongoose.connect( "mongodb://localhost:27017/day1", { useNewUrlParser: true, useUnifiedTopology: true, }, (err) => { if (!err) { console.log("Connected To DB!"); } else { console.log("Not Connected to db"); } } ); /* PORT 3000 */ app.listen(3000, () => { console.log("Port 3000"); });
2. 适配MongoDB 6.0.8的连接配置
MongoDB 6.0+ 对应新版本mongoose(推荐6.x及以上版本),旧配置项 useNewUrlParser 和 useUnifiedTopology 已默认启用,无需手动声明。同时新版本更推荐用异步/await或Promise方式处理连接,方便排查具体错误:
推荐的现代连接方式
const express = require("express"); const app = express(); const mongoose = require("mongoose"); /* DB CONNECTION - 异步方式 */ async function connectDB() { try { await mongoose.connect("mongodb://localhost:27017/day1"); console.log("Connected To DB!"); } catch (err) { // 打印具体错误信息,精准定位问题 console.error("DB连接失败:", err.message); process.exit(1); // 连接失败时退出进程 } } connectDB(); /* PORT 3000 */ app.listen(3000, () => { console.log("Server running on port 3000"); });
3. 额外排查项
若修复后仍无法连接,检查以下内容:
- 确认本地MongoDB服务已启动:
- Windows:打开服务管理器,找到MongoDB服务并启动
- macOS/Linux:执行
mongod或sudo systemctl start mongod启动服务
- 检查默认端口27017是否被占用:Windows用
netstat -ano | findstr :27017,macOS/Linux用lsof -i :27017查看占用情况 - 确认mongoose版本与MongoDB兼容:MongoDB 6.0.x 建议搭配mongoose 6.x或7.x版本,执行
npm list mongoose查看当前版本,版本过低则运行npm install mongoose@latest升级
内容的提问来源于stack exchange,提问作者Mlornz
相关产品推荐
相关产品推荐

