我使用 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()
}
确保密码类型为字符串
如果密码类型未定义 bcrypt 将抛出此错误
使用 bcrypt.genSalt 方法代替
移动此代码
req.body.password = bcrypt.hashSync(req.body.password , 8)
到
req.body.password = bcrypt.hashSync(req.body.password, await bcrypt.genSalt())