我有一个数据库包装器类,用于建立与某些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"
我使用mlab.com作为MongoDB数据库。我将连接字符串分离到另一个名为的
config
文件夹中,并在文件keys.js中保存了连接字符串:服务器代码是
您需要像上面一样在连接字符串后编写{useNewUrlParser:true}。
简而言之,您需要执行以下操作: