如何解决为什么在使用 bcryptjs 时“pre”函数主要与 userSchema 一起使用?
在 express 中使用 bcrypt 时,我经常看到“pre”函数被用作 userSchema.pre('save',async function(){..})。
我知道它是一个中间件,运行在 .save() 函数加密密码之前,但是在 userSchema 中使用 "pre" 的逻辑是什么?.. 像 userSchema.pre()
解决方法
当我们使用bcrypt时,我们需要在将密码添加到数据库之前(pre)进行hash,所以这个过程是pre-save,而不是after(post)save,我们不能在保存之后hash密码,它是hash之前的保存
,嗯,这只是一种在存储文档之前对其进行操作的便捷方式,例如为了确保密码不会以明文形式存储,而是转换为哈希(正如您提到的,这通常是使用 bcrypt 完成的)。
这是一篇很好的文章,详细解释了:https://www.thepolyglotdeveloper.com/2019/02/hash-password-data-mongodb-mongoose-bcrypt/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。