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

后一个user是我在加盐回调后输出的user,可以看到第二个next之后的输出password是加盐了的。
我开始以为两个next可以有覆盖关系,不过似乎是以第一个next执行时的this指向对象为准存入数据库

查询了一下数据库,果然是以第一个next时状态为准。
那么我就有不明白的地方了,第二个next()执行是失败还是怎么样?其中next操作到底做了什么?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
next的作用是运行下一个中间件。因为 js 里很多操作都是异步的,而异步的方式有两种,一种是
callback,一种是promise。而mongoose大多数场景用的都是callback,题主这里也不例外。下面的说明我没看,只看第一幅图里的代码就有问题。
第一幅图里的代码,
next永远都会被调用两次。把倒数第三行的
next删掉。pre方法其实是定义个钩子,也就是在A和B之间插入一个C,那么执行完C的时候,必须让程序继续执行B,所以使用next。
参考https://github.com/bnoguchi/hooks-js/tree/31ec571cef0332e21121ee7157e0cf9728572cc3