运行Mongoose官方文档示例代码无输出,求排查问题原因
问题排查与解决
以下是几种可能的原因及对应的解决办法:
MongoDB服务未启动
你的代码尝试连接本地MongoDB实例(mongodb://localhost:27017/test),如果MongoDB服务未在本地运行,await mongoose.connect()会一直处于等待状态,不会执行后续的console.log语句。
解决:启动本地MongoDB服务,不同系统的启动方式如下:- Windows:打开命令提示符,运行
net start MongoDB(已注册为系统服务的情况),或者找到MongoDB安装目录下的bin/mongod.exe直接运行。 - macOS/Linux:终端运行
brew services start mongodb-community(通过Homebrew安装的情况),或者直接执行mongod命令。
- Windows:打开命令提示符,运行
旧版Mongoose需补充连接配置参数
部分旧版本Mongoose需要显式指定连接选项,否则连接可能失败或卡住。修改连接代码如下:await mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true, useUnifiedTopology: true });连接阶段错误未被捕获输出
虽然代码写了main().catch(err => console.log(err)),但部分连接错误可能无法正常冒泡到这个catch块。可以在连接前添加错误监听:const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:'));
测试建议:先在mongoose.connect前添加console.log('尝试连接MongoDB...'),确认代码是否执行到连接步骤,以此缩小问题范围。
内容的提问来源于stack exchange,提问作者Trojosh
相关产品推荐
相关产品推荐

