mongoose中schema的操作回调参数next具体作用是什么?
不懂next的具体用法,进入下一部的概念有点模糊,其中先输出auauau后还是可以输出user。
后一个user是我在加盐回调后输出的user,可以看到第二个next之后的输出password是加盐了的。
我开始以为两个next可以有覆盖关系,不过似乎是以第一个next执行时的this指向对象为准存入数据库
查询了一下数据库,果然是以第一个next时状态为准。
那么我就有不明白的地方了,第二个next()执行是失败还是怎么样?其中next操作到底做了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
next
的作用是运行下一个中间件。因为 js 里很多操作都是异步的,而异步的方式有两种,一种是
callback
,一种是promise
。而mongoose
大多数场景用的都是callback
,题主这里也不例外。下面的说明我没看,只看第一幅图里的代码就有问题。
第一幅图里的代码,
next
永远都会被调用两次。把倒数第三行的
next
删掉。pre方法其实是定义个钩子,也就是在A和B之间插入一个C,那么执行完C的时候,必须让程序继续执行B,所以使用next。
参考https://github.com/bnoguchi/hooks-js/tree/31ec571cef0332e21121ee7157e0cf9728572cc3