我有一个数据库包装类,它建立到某些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
来消除这些警告呢?这对我很重要,因为脚本应该作为计划任务运行,而这些警告会导致垃圾邮件满天飞。
我正在使用版本为 3.1.0-beta4
的 mongodb
驱动程序,以及相应的 @types/mongodb
包在 3.0.18
中。它们都是使用 npm install
安装的最新版本。
解决方法
使用较旧版本的 mongodb 驱动程序:
"mongodb": "~3.0.8",
"@types/mongodb": "~3.0.18"
beta
版本中某种方式在周末发布到 npm 上的内容。在 API 确实最终确定之前,不要担心它。你做得很对,安装了一个稳定版本。 - Neil Lunn