这个问题在这里已有答案:
当我使用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之前如何传递用户和密码有关,但我必须这样做,否则我会因为在密码中使用@而收到错误:/任何想法?
谢谢!
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));