mongodb 如何重构代码:Model.prototype.save()不再接受回调

m1m5dgzv  于 2023-06-05  发布在  Go
关注(0)|答案(1)|浏览(206)

我是计算机语言的新手。我试着从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()不再接受回调');^

q7solyqu

q7solyqu1#

许多MongoDB函数不再接受回调,因为MongoDB使用了promise。它们或多或少已经被.then()和.catch()方法所取代。

https://www.mongodb.com/docs/drivers/node/current/fundamentals/promises/

相关问题