throw new MongooseError('Query.prototype.exec() no longer accepts a callback');
^
MongooseError: Query.prototype.exec() no longer accepts a callback
Run Code Online (Sandbox Code Playgroud)
我正在尝试注册用户。
小智 23
我遇到了同样的问题并通过两种解决方案修复了它:
npm uninstall mongoose
npm install mongoose@6.10.0
Run Code Online (Sandbox Code Playgroud)
myModel.find({}).exec((err, res) => {
//callback code
});
Run Code Online (Sandbox Code Playgroud)
只需删除 .exec() 函数并将其替换为 .then()/.catch() 即可:
myModel.find({}).then((res) => {
//if succeded do this block of code
}).catch((err) => {
//catch error
});
Run Code Online (Sandbox Code Playgroud)
我通过用另一个函数替换 db.js 文件中的回调函数解决了该问题。
我的新 db.js 连接 Mongo 数据库:
const mongoose = require('mongoose')
const connectDB = async () => {
try {
mongoose.set('strictQuery', false)
mongoose.connect(process.env.MONGO_URI)
console.log('Mongo connected')
} catch(error) {
console.log(error)
process.exit()
}
}
module.exports = connectDB
Run Code Online (Sandbox Code Playgroud)