我有一个数据库包装类,它建立到某个MongoDB实例的连接:
async connect(connectionString: string): Promise<void> {
this.client = await MongoClient.connect(connectionString)
this.db = this.client.db()
}
这给了我一个警告:
(节点: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"
最佳答案:
检查你的蒙古人版本
mongo --version
如果您使用的是版本>=3.1.0,请将Mongo连接文件更改为->
MongoClient.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true })
或您的Mongoose连接文件到->
mongoose.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true });
理想情况下,它是版本4的特性,但v3.1.0及更高版本也支持它。查看MongoDB Github了解详细信息。