运行node app.js连接Mongoose时终端卡住无响应如何解决?
问题排查解决方案
- 第一步:确认本地MongoDB服务已启动
未启动MongoDB服务是该问题最高发的原因,不同系统校验方式如下:- Windows:打开服务管理器,查找MongoDB相关服务确认状态为「正在运行」,或直接在终端执行
mongod命令,无报错即说明服务正常 - macOS/Linux:执行
brew services list(brew安装场景)或systemctl status mongod命令,确认MongoDB服务处于运行状态,未启动的话先执行启动命令再运行代码
- Windows:打开服务管理器,查找MongoDB相关服务确认状态为「正在运行」,或直接在终端执行
- 第二步:补全mongoose连接配置参数
6.0及以上版本的mongoose必须传入兼容配置项,同时建议添加连接状态回调捕获报错,避免无响应:const mongoose = require("mongoose"); mongoose.connect("mongodb://localhost:27017/fruitsDB", { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log("MongoDB连接成功")) .catch(err => console.log("连接报错:", err)); - 第三步:校验MongoDB连接配置
如果你修改过MongoDB默认端口、开启了访问认证,需要对应修改连接字符串:- 核对连接字符串中的端口是否和MongoDB实际监听端口一致
- 开启认证的场景需要在连接字符串中添加账号密码信息,格式为
mongodb://用户名:密码@localhost:27017/fruitsDB?authSource=admin
- 第四步:单独测试MongoDB连通性
直接在终端执行mongosh命令,确认可以正常进入MongoDB交互命令行,若无法进入则优先排查MongoDB本身的安装、配置问题。
内容的提问来源于stack exchange,提问作者DEVSBA6996
相关产品推荐
相关产品推荐

