【发布时间】:2018-10-31 01:49:55
【问题描述】:
我有一个数据库包装类,它与某个 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 运行,并且这些警告会导致垃圾邮件垃圾邮件。
我在3.1.0-beta4 版本中使用mongodb 驱动程序,并在3.0.18 中使用相应的@types/mongodb 包。它们都是使用npm install 的最新版本。
解决方法
使用旧版本的 mongodb 驱动:
"mongodb": "~3.0.8",
"@types/mongodb": "~3.0.18"
【问题讨论】:
-
这来自
beta版本,它在周末以某种方式在 npm 上发布。在 API 真正完成之前不要担心。安装稳定版本是正确的做法。 -
mongodb 3.0.0 以上简单添加 mongoose.connect("mongodb://localhost:portnumber/YourDB", { useNewUrlParser: true })
标签: node.js mongodb typescript express mongoose