Open Bear-V opened 3 years ago
因为是通过egg-mongoose 连接的数据库,直接导致项目启动失败
config 里配置的是啥?
config 里配置的是啥?
类似这样的
const userConfig = {
// myAppName: 'egg',
mongoose: {
client:{
url: `mongodb://${privateConfig.mongoDB.user}:${privateConfig.mongoDB.pwd}@${privateConfig.mongoDB.host}:${privateConfig.mongoDB.port}/${privateConfig.mongoDB.db}`,
options: { useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true }
}
},
};
我记得之前有说 defaultDB 管用来着? 也是用这个mongoose.createConnection 方法创建的嘛?
我记得之前有说 defaultDB 管用来着? 也是用这个mongoose.createConnection 方法创建的嘛?
单独使用mongoose创建一个连接扔进去吗? 我试过了,感觉还是有问题,可能是我连接的方式有问题,
现在已经成功了
主要是配置参数里面的 options参数内的useUnifiedTopology: true
把这个删了就好了
莫名其妙的
不传报警告的也是它
后来查了一下说 数据库的版本和node包版本不匹配的时候就会报警告 但是也没有说不匹配利用这个消除警告会导致自动断开的情况
所以具体错误现在也不太明确
useUnifiedTopology 默认情况下,mongoose.connect()将打印出以下警告:
DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor. Mongoose 5.7使用MongoDB驱动程序3.3.x,该驱动程序对监视副本集或分片群集中的所有服务器的方式进行了重大重构。用MongoDB的话来说,这就是 服务器发现和监视。
要选择使用新的拓扑引擎,请使用以下行:
mongoose.set('useUnifiedTopology', true); 该useUnifiedTopology选项删除了对不再与新拓扑引擎相关的多个连接选项的支持 :
autoReconnect reconnectTries reconnectInterval 启用时useUnifiedTopology,请从您mongoose.connect()或的 createConnection()电话中删除这些选项。
如果发现任何意外行为,请在GitHub上发布一个问题。
相关环境信息
问题
disconnected 断开连接 图好像看不到
一直都是自动断开
尝试和检查
以上,请项目方帮忙看看还有什么原因没有