【发布时间】:2019-04-19 21:35:04
【问题描述】:
当我使用 mongoose 运行我的 node.js 服务器并表达时,我收到以下警告:
(node:27809) DeprecationWarning: 当前 URL 字符串解析器是 已弃用,并将在未来的版本中删除。要使用新 解析器,将选项 { useNewUrlParser: true } 传递给 MongoClient.connect。
当我将 { useNewUrlParser: true } 传递给我的连接选项时,我得到:
(node:27799) UnhandledPromiseRejectionWarning: TypeError: callback is 不是 $initialConnection.$initialConnection.then 的函数 (节点:27799)UnhandledPromiseRejectionWarning:未处理的承诺 拒绝。此错误源于在异步内部抛出 没有 catch 块的函数,或者通过拒绝一个承诺 不使用 .catch() 处理。 (拒绝 ID:1)(节点:27799)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的 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 之前传递用户和密码有关,但我必须这样做,否则我会因为在密码中使用 @ 而出错:/ 有什么想法吗?
谢谢!
【问题讨论】:
-
我想这可能会回答你的问题:stackoverflow.com/questions/50448272/…
标签: javascript node.js mongodb express mongoose