我有一个数据库包装类,它建立到某个 MongoDB 实例的连接:
async connect(connectionString: string): Promise<void> {
this.client = await MongoClient.connect(connectionString)
this.db = this.client.db()
}
这给了我一个警告:
(node:4833) DeprecationWarning:当前的 URL 字符串解析器已被弃用,并将在未来的版本中删除。要使用新的解析器,请将选项 { useNewUrlParser: true } 传递给 MongoClient.connect。
connect()
方法接受 MongoClientOptions
实例作为第二个参数。但它没有名为 useNewUrlParser
的属性。我还尝试在连接字符串中设置这些属性,如下所示: mongodb://127.0.0.1/my-db?useNewUrlParser=true
但它对这些警告没有影响。
那么如何设置 useNewUrlParser
来删除这些警告?这对我很重要,因为脚本应该作为 cron 运行,并且这些警告会导致垃圾邮件垃圾邮件。
我正在使用 mongodb
版本 3.1.0-beta4
--- 中的驱动程序与对应的 @types/mongodb
包中的 3.0.18
它们都是使用 npm install
的最新版本。
解决方法
使用旧版本的 mongodb 驱动程序:
"mongodb": "~3.0.8",
"@types/mongodb": "~3.0.18"
原文由 Lion 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查您的
mongo
版本:如果您使用的版本 >= 3.1.0,请将您的
mongo
连接文件更改为 ->或者你的猫鼬连接文件到 ->
理想情况下,它是版本 4 的功能,但 v3.1.0 及更高版本也支持它。查看 MongoDB GitHub 了解详细信息。