mongoose中schema的操作回调参数next具体作用是什么?

发布于 2022-09-02 00:38:27 字数 681 浏览 9 评论 0

clipboard.png

不懂next的具体用法,进入下一部的概念有点模糊,其中先输出auauau后还是可以输出user。

clipboard.png

后一个user是我在加盐回调后输出的user,可以看到第二个next之后的输出password是加盐了的。

我开始以为两个next可以有覆盖关系,不过似乎是以第一个next执行时的this指向对象为准存入数据库

clipboard.png

查询了一下数据库,果然是以第一个next时状态为准。

那么我就有不明白的地方了,第二个next()执行是失败还是怎么样?其中next操作到底做了什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦言归人 2022-09-09 00:38:27

next 的作用是运行下一个中间件。
因为 js 里很多操作都是异步的,而异步的方式有两种,一种是 callback,一种是 promise。而 mongoose 大多数场景用的都是callback,题主这里也不例外。

下面的说明我没看,只看第一幅图里的代码就有问题。
第一幅图里的代码,next 永远都会被调用两次。
把倒数第三行的 next 删掉。

淡笑忘祈一世凡恋 2022-09-09 00:38:27

pre方法其实是定义个钩子,也就是在A和B之间插入一个C,那么执行完C的时候,必须让程序继续执行B,所以使用next。
参考https://github.com/bnoguchi/hooks-js/tree/31ec571cef0332e21121ee7157e0cf9728572cc3

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文