mongodb mongoose返回了一个错误:保存()不再接受回调

wwwo4jvm  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(106)
const humanSchema = new mongoose.Schema({
    name:String,
})

const Human =  mongoose.model('human',humanSchema)
humanSchema.post('save',function(docs,next){
    console.log("A save function occured")
    next()
})
const h = new Human({name:"john"})
h.save(function(err){
    console.log("logged")
});

字符串
首先,有一个保存()不接受回调的错误,我正在学习如何使用post(),但它从不记录事件。
我希望post()函数记录“发生了一个保存函数”

qvtsj1bj

qvtsj1bj1#

首先,试着在编译模型之前定义你的中间件:
https://mongoosejs.com/docs/middleware.html#defining

const humanSchema = new mongoose.Schema({
    name:String,
})
humanSchema.post('save',function(docs,next){
    console.log("A save function occured")
    next()
})
const Human =  mongoose.model('human',humanSchema)

字符串
其次,如果你想在保存()之后运行一些东西,你需要用.then链接函数

doc.save().then(savedDoc => {
  console.log('Doc saved');
});


或者使用async/await(可能在try... catch块中)

await doc.save();
console.log('Doc saved');

相关问题