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;
相关推荐
用户6919026813392 分钟前
Agent 记忆处理机制详解:从变量数据类型到内存模型
javascript·架构
zhanghaha13147 分钟前
Python进阶教程:27_subprocess 模块 零基础超详细教程
开发语言·python
兄弟加油,别颓废了。8 分钟前
bugku题目
开发语言·前端·python
ShineWinsu9 分钟前
对于 Vue 3:开发前需要掌握的 JavaScript 核心基础:从变量、数组方法到 Promise、Async/Await 与 ES Module 的解析
javascript·vue.js·elasticsearch
西西小飞龙12 分钟前
npm vs pnpm
前端·npm·node.js
zh_xuan13 分钟前
c++ string_view
开发语言·c++
阿里嘎多学长15 分钟前
2026-09-05 GitHub 热点项目精选
开发语言·程序员·github·代码托管
天天进步201517 分钟前
Pixelle-Video 源码解析 #17:TTS 语音生成:Edge-TTS、Index-TTS 如何接入?
前端·数据库
古少侠19 分钟前
用 DS随心转 把 AI 画的 Mermaid 流程图转成 Word 里的高清图
开发语言·c#·word