javascript - mongoose中schema的操作回调参数next具体作用是什么?
高洛峰
高洛峰 2017-04-10 16:50:58
[JavaScript讨论组]

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

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

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

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

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
怪我咯

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

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

ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号