服务器发现和监视引擎已弃用

iLiA:

我在我的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:不建议使用当前的“服务器发现和监视”引擎,并将在以后的版本中将其删除。要使用新的Server Discover and Monitoring引擎,请将选项{useUnifiedTopology:true}传递给MongoClient构造函数。

问题是什么?我以前没有使用useUnifiedTopology过,但是现在它显示在控制台中。我将其添加到配置中,但它仍然会向我发出此警告,为什么?我什至不使用MongoClient

编辑

Felipe Plets回答时,猫鼬存在问题,他们在更高版本中修复了该错误。因此,您可以通过更新猫鼬版本来解决问题。

菲利普·普莱特:

更新资料

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

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

原始答案

我遇到了同样的问题,并决定深入研究猫鼬代码: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。设置为true选择加入MongoDB驱动程序的副本集和分片群集监视引擎。

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

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

我已降级为5.6.13,并且我的项目恢复正常。因此,我目前唯一看到的选择是将其降级,并等待更新更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章