Error: Illegal arguments: undefined string at bcrypt.hashSync

用react写后端的signUp时出现报错undefined string at bcrypt.hashSync,代码如下,报错在生成password时!

复制代码
const bcrypt = require('bcryptjs')
const jwt = require('jsonwebtoken')
const db = require('../config/db.config.js')
const User = db.user
const errorHandler = require('../utils/errorHandler')

module.exports.register = async function(req, res) {
    const candidate = await User.findOne({
        where: {
            username: req.body.username
        }
    })

    if (candidate) {
        res.status(409).json({
            message: 'This login is already taken. Try another.'
        })
    } else {
        const salt = bcrypt.genSaltSync(10)
        const password = req.body.password
        const user = new User({
            name: req.body.name,
            username: req.body.username,
            roles: req.body.roles,
            photoSrc: req.file ? req.file.path: '',
            password: bcrypt.hashSync(password, salt)
        })
        try {
            await user.save()
            res.status(201).json(user)
        } catch(e) {
            errorHandler(res, e)
        }
    }
}

修改方式,在生成salt和password时,使用await,因为本身就是异步运行:

复制代码
const salt = await bcrypt.genSaltSync(10);
const password = await req.body.password;
相关推荐
love530love1 分钟前
【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
开发语言·ide·windows·笔记·python·pycharm
lyc2333332 分钟前
鸿蒙多子类型输入法:3步实现输入模式自由切换🔤
前端
Danta2 分钟前
从 0 开始学习 Three.js(2)😁
前端·javascript·three.js
凌辰揽月3 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
Dignity_呱4 分钟前
vue3对组件通信做了哪些升级?
前端·vue.js·面试
植物系青年6 分钟前
基于 Lowcode Engine 的低码平台“编码效率”提升实践
前端·低代码
海奥华27 分钟前
go中的接口返回设计思想
开发语言·后端·golang
就是我7 分钟前
开发“业务组件库”,该从哪里入手?
前端·javascript·面试
lifallen9 分钟前
深入浅出 Arrays.sort(DualPivotQuicksort):如何结合快排、归并、堆排序和插入排序
java·开发语言·数据结构·算法·排序算法
运维开发王义杰9 分钟前
Python: 告别 ModuleNotFoundError, 解决 pipx 环境下 sshuttle 缺少 pydivert 依赖的终极指南
开发语言·python