【发布时间】:2018-08-20 04:27:34
【问题描述】:
我更新了我正在使用 async/await 而不是回调的 API。 API 在有和没有转换的情况下都能正常工作。
我使用 Mocha/Chai 构建它类似于 TDD,并且我的所有测试都正常。
但是每次我启动我的服务时,我都会看到这条关于我任期内 MongoDB 连接的消息。
DeprecationWarning:
open()在 mongoose >= 4.11.0 中已弃用,请改用openUri(),或者在使用connect()或createConnection()时设置useMongoClient选项 Db.prototype.authenticate 方法将在下一个主要版本 3.x 中不再可用,因为 MongoDB 3.6 将仅允许对 admin db 中的用户进行身份验证,并且不再允许在套接字上使用多个凭据。请使用带有身份验证凭据的 MongoClient.connect 进行身份验证。
我在网上查看,发现我现在必须添加此选项:useMongoClient: true
所以来自:
mongoose.connect(config.mongoURI[app.settings.env], (err, res) => { ... })
收件人:
mongoose.connect(config.mongoURI[app.settings.env], {useMongoClient: true}, (err, res) => { ... })
但是现在我所有的数据库搜索测试都失败了。
如果我在没有选项的情况下恢复,一切正常。
知道为什么吗?
【问题讨论】:
-
可能是你遇到了这个错误github.com/Automattic/mongoose/issues/5399
-
解决方法(使用
useMongoClient: true)比“错误”更糟糕,这只是一个警告。 -
@robertklep 谢谢...正是这个...我正在阅读帖子以查看是否有修复!
标签: javascript node.js mongodb