我使用 bcrypt 来哈希密码,但是当我使用 postman 测试 api 时,它给了我这个错误:>>>

问题描述 投票:0回答:1

我使用 bcrypt 来哈希密码,但是当我使用 postman 测试 api 时,它给了我这个错误:>>> 数据必须是字符串或缓冲区,盐必须是盐字符串或若干轮次

import bcrypt from "bcrypt"
import { userModel } from "../../database/models/user.model.js"


export const checkEmail = async(req,res,next) => {
     
    let user = await userModel.findOne({ email : req.body.email})
    if (user) return res.json({message:"email already exists."})

  
   req.body.password = bcrypt.hashSync( req.body.password , 8)

    next()

}
javascript node.js nodes mern bcrypt
1个回答
0
投票
  • 确保密码类型为字符串

    如果密码类型未定义 bcrypt 将抛出此错误

  • 使用 bcrypt.genSalt 方法代替

移动此代码

req.body.password = bcrypt.hashSync(req.body.password , 8)

req.body.password = bcrypt.hashSync(req.body.password, await bcrypt.genSalt())
© www.soinside.com 2019 - 2024. All rights reserved.