跟随Lama Dev教程开发Web应用,注册登录客户端请求报错求助
问题排查与修复
根因分析
控制台报错Error: data and salt arguments required直接指向核心问题:bcrypt.hash()的第一个参数(待加密的密码)为undefined。结合你提供的请求体来看,请求体里的密码字段拼写错误:你写的是"passowrd",但后端代码中获取的是req.body.password,导致后端无法拿到密码值,最终触发bcrypt的参数缺失报错。
修复步骤
修正请求体字段拼写
将请求体中的"passowrd"改为"password",正确请求体如下:{ "username" : "harii", "email" : "harii@gmail.com", "password" : "1234" }可选:添加参数校验(预防同类问题)
可以在注册接口开头增加必填参数校验,提前返回明确错误,避免进入后续逻辑触发报错,在auth.js的注册路由中添加:if (!req.body.username || !req.body.email || !req.body.password) { return res.status(400).json("用户名、邮箱、密码为必填项"); }
额外确认点
检查客户端请求的Content-Type是否为application/json,同时确认你的index.js中已正确配置JSON解析中间件app.use(express.json())(从你的代码来看这部分配置正常)。
内容的提问来源于stack exchange,提问作者krishna
相关产品推荐
相关产品推荐

