Node.js:如何处理新的URL解析器弃用警告? [重复]

问题描述 投票:1回答:1

当我使用mongoose和express运行我的node.js服务器时,我收到此警告:

(node:27809)DeprecationWarning:不推荐使用当前URL字符串解析器,将来的版本将删除。要使用新的解析器,请选择{useNewUrlParser:true}到MongoClient.connect。

当我将{useNewUrlParser:true}传递给我的连接选项时,我得到:

(node:27799)UnhandledPromiseRejectionWarning:TypeError:callback不是$ initialConnection的函数。$ initialConnection.then(node:27799)UnhandledPromiseRejectionWarning:未处理的promise promise rejection。这个错误源于在没有catch块的情况下抛出异步函数,或者拒绝未使用.catch()处理的promise。 (拒绝ID:1)(节点:27799)[DEP0018]弃用警告:不推荐使用未处理的拒绝承诺。将来,未处理的promise拒绝将使用非零退出代码终止Node.js进程。

这是我的代码:

//Mongoose Connection & Validation Process

mongoose.connect("mongodb://12.345.65.89:3000/db",
         {user: 'user', pass: 'p@ssword'},{ useNewUrlParser: true });

mongoose.connection.on('connected', function () {
     console.log('Mongoose connected!')
 });

mongoose.connection.on('error',function (err) {
     console.log('Mongoose default connection error');
});

我怎样才能解决这个问题?我认为这与我在useNewUrlParser之前如何传递用户和密码有关,但我必须这样做,否则我会因为在密码中使用@而收到错误:/任何想法?

谢谢!

javascript node.js mongodb express mongoose
1个回答
0
投票
const db = require('./config/keys').mongoURI;
//mongoURI: 'mongodb://localhost:27017/mernApp'

mongoose
    .connect(db, { useNewUrlParser: true })
    .then(() => console.log("MongoDB connected"))
    .catch(err => console.log(err));
© www.soinside.com 2019 - 2024. All rights reserved.