node.js - 为什么我必须在猫鼬预保存中间件中使用 next()
问题描述
userschema.pre('save',async function(next){
const user =this;
if(user.isModified('password')){
user.password=await bcrypt(user.password,8)
}
next()
})
我是第一次使用预保存中间件,有点困惑
我看到了中间件的猫鼬指南,但我仍然不明白为什么我们必须在 func 参数中声明下一个并在函数末尾使用它,我认为它确保在保存模型之前执行所有语句但我'不知道谁能给我解释一下
解决方案
next
密钥是指将在您之后运行以处理请求的下一个中间件。在函数结束时,调用 next() 将控制权传递给下一个中间件。
像,“嘿,我已经为这个请求完成了我的工作。我把它给你了,做你的工作”:)
推荐阅读
- java - 如何从扩展 RelativeLayout 的类更改 Activity 中的 Textview 文本
- linux - docker 如何在现有的主机操作系统内核之上支持多个 Linux 发行版?
- macos - 为什么我的 Mac 不能在 1000 端口上运行服务器?
- python - 在 raspberry pi3 中更改我的 python 默认版本时出错?
- c++ - 使用 unique_ptr 访问子类中的函数时出错
- php - Laravel刀片将数组传递给控制器,但控制器将其读取为字符串
- javascript - 如何通过 API 调用设置颜色选择器的背景颜色?
- c++ - 将 const unsigned char[] 转换为 std::string 后的字符串大小
- javascript - if/else 在 Javascript 登录页面中不起作用
- javascript - 根据每个数据点的状态统计成功和失败的发生