通过将 useNewUrlParser 设置为 true 来避免“不推荐使用当前 URL 字符串解析器”警告

新手上路,请多包涵

我有一个数据库包装类,它建立到某个 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 许可协议

阅读 1.3k
1 个回答

检查您的 mongo 版本:

 mongo --version

如果您使用的版本 >= 3.1.0,请将您的 mongo 连接文件更改为 ->

 MongoClient.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true })

或者你的猫鼬连接文件到 ->

 mongoose.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true });

理想情况下,它是版本 4 的功能,但 v3.1.0 及更高版本也支持它。查看 MongoDB GitHub 了解详细信息。

原文由 Abhishek Sinha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题