首页 > 解决方案 > 为什么我必须在猫鼬预保存中间件中使用 next()

问题描述

userschema.pre('save',async function(next){
    const user =this;
    
    if(user.isModified('password')){
        user.password=await bcrypt(user.password,8)
    }

    next()
})

我是第一次使用预保存中间件,有点困惑

我看到了中间件的猫鼬指南,但我仍然不明白为什么我们必须在 func 参数中声明下一个并在函数末尾使用它,我认为它确保在保存模型之前执行所有语句但我'不知道谁能给我解释一下

标签: node.jsmongodbmongoosemongoose-middleware

解决方案


next密钥是指将在您之后运行以处理请求的下一个中间件。在函数结束时,调用 next() 将控制权传递给下一个中间件。

像,“嘿,我已经为这个请求完成了我的工作。我把它给你了,做你的工作”:)


推荐阅读