gpt4 book ai didi

javascript - 服务器发现和监控引擎已弃用

转载 作者:行者123 更新时间:2023-12-01 17:12:47 25 4
gpt4 key购买 nike

我在 Node.js 应用程序中使用 Mongoose,这是我的配置:

mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false
}).then(()=>{
console.log(`connection to database established`)
}).catch(err=>{
console.log(`db error ${err.message}`);
process.exit(-1)
})

但在控制台中它仍然给我警告:

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.

有什么问题吗?我之前没有使用 useUnifiedTopology 但现在它显示在控制台中。我将其添加到配置中,但它仍然给我这个警告,为什么?我什至不使用 MongoClient

编辑

正如 Felipe Plets 所回答的那样,Mongoose 存在一个问题,他们在以后的版本中修复了这个错误。所以你可以通过更新mongoose版本来解决问题。

最佳答案

更新

Mongoose 5.7.1 已发布,似乎解决了该问题,因此设置 useUnifiedTopology 选项可以按预期工作。

mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});

原始答案

我面临着同样的问题,并决定深入研究 Mongoose 代码:https://github.com/Automattic/mongoose/search?q=useUnifiedTopology&unscoped_q=useUnifiedTopology

似乎是 Mongoose 5.7 版本中添加的一个选项,但尚未有详细记录。我什至找不到图书馆历史中提到的https://github.com/Automattic/mongoose/blob/master/History.md

根据代码中的注释:

  • @param {Boolean} [options.useUnifiedTopology=false] False by default. Set to true to opt in to the MongoDB driver's replica set and sharded cluster monitoring engine.

项目 GitHub 上也有一个关于此错误的问题:https://github.com/Automattic/mongoose/issues/8156

就我而言,我不在副本集或分片集群中使用 Mongoose,尽管该选项应该为 false。但如果为 false,它会提示设置应该为 true。一旦是真的,它仍然不起作用,可能是因为我的数据库没有在副本集或分片集群上运行。

我已降级到 5.6.13,我的项目恢复正常工作。因此,我目前看到的唯一选择是降级并等待修复程序更新为新版本。

关于javascript - 服务器发现和监控引擎已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57895175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com