相关疑难解决方法(0)

通过将useNewUrlParser设置为true,避免"当前URL字符串解析器已弃用"警告

我有一个数据库包装类,它建立与某些MongoDB实例的连接:

async connect(connectionString: string): Promise<void> {
        this.client = await MongoClient.connect(connectionString)
        this.db = this.client.db()
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个警告:

(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/mongodb3.0.18.它们都是最新的可用npm install.

解决方法

使用旧版本的mongodb驱动程序:

connect()

mongoose mongodb node.js express typescript

210
推荐指数
14
解决办法
22万
查看次数

服务器发现和监视引擎已弃用

我在node.js应用程序中使用猫鼬,这是我的配置

mongoose.connect(process.env.MONGO_URI, {
   useNewUrlParser: true,
   useUnifiedTopology: true,
   useCreateIndex: true,
   useFindAndModify: false
}).then(()=>{
    console.log(`connection to database established`)
}).catch(err=>{
    console.log(`db error ${err.message}`);
    process.exit(-1)
})
Run Code Online (Sandbox Code Playgroud)

但在控制台中它仍然会警告我

DeprecationWarning:不建议使用当前的“服务器发现和监视”引擎,并将在以后的版本中将其删除。要使用新的“服务器发现和监视”引擎,请将选项{useUnifiedTopology:true}传递给MongoClient构造函数。

有什么问题 我以前没有使用过useUnifiedTopology,但是现在它出现在控制台中,我添加了它,但它仍然给我这个错误。为什么?我什至不使用mongoClient。

编辑:

正如Felipe Plets回答的那样,猫鼬存在问题,他们在较晚版本的猫鼬中修复了该错误。因此您可以通过更新猫鼬版本来解决问题

mongoose mongodb node.js

28
推荐指数
4
解决办法
2万
查看次数

mongoose.connect() 中的 useNewURLParser 和 userCreateIndex 有何作用?

我目前是 MongoDB 和 NodeJS 的新手,我想知道选项 useNewURLParser 和 useCreateIndex 的作用。

const mongoose = require("mongoose");

mongoose.connect("mongodb://127.0.0.1:27017/task-manager-api",
{
    useNewUrlParser: true,
    useCreateIndex: true
})

Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

mongodb ×3

mongoose ×3

node.js ×3

express ×1

typescript ×1