我是计算机语言的新手。我试着从Youtube了解后端网络项目,但视频是2年前推出的。现在Mongoose放弃了对Model.prototype.save的回调支持。
我尝试向数据库中添加新数据,结果显示Model.prototype.save()不再接受回调。
我如何重构代码以正确地运行。
连接到MongoDB
const dbUrl = 'mongodb://127.0.0.1:27017/productDB'
mongoose.connect(dbUrl,{
useNewUrlParser:true,
useUnifiedTopology:true
}).catch(err=>console.log(err))
添加新数据模块
module.exports.saveProduct = function(model,data){
model.save(data)
}
router.post('/insert',(req,res)=>{
let data = new Product({
name:req.body.name,
price:req.body.price,
image:req.body.image,
description:req.body.description
})
Product.saveProduct(data,(err)=>{
if(err) console.log(err)
res.redirect('/')
})
})
错误显示:
throw new MongooseError('Model.prototype.save()不再接受回调');^
1条答案
按热度按时间q7solyqu1#
许多MongoDB函数不再接受回调,因为MongoDB使用了promise。它们或多或少已经被.then()和.catch()方法所取代。
https://www.mongodb.com/docs/drivers/node/current/fundamentals/promises/