使用bcrypt对密码进行哈希加盐时报错-No callback function was given

因为bcrypt.hash(data, salt, progress, cb)是需要四个参数

UserSchema.pre('save', function (next) {
    if (!this.isModified('password')) return next()
        // 密码哈希加盐加密
    bcrypt.genSalt(SALT_WORK_FACTOR, (err, salt) => {
        if (err) return next(err)

        bcrypt.hash(this.password, salt, null, (error, hash) => {
            if (error) return next(error)

            this.password = hash
            next()
        })
    })
})

在开始我只写了

bcrypt.hash(this.password, salt, (error, hash) => {
                    if (error) return next(error)

                this.password = hash
                next()
)

在hash函数中是这样描述的

The documentation is unclear on this: it states that data, salt and cb
are required, which implies that progress isn’t, but without it you’ll
get the error. Pass a null if you don’t care about tracking progress:
[html] view plain copy

可以看出,数据(data),盐(salt)和cb是必须的,所以意味这进度(progress)不是,但是缺少它却会报错,所以我们可以将它设置为null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值