bcrypt.hash(req.body.password,10,function(err,hashedPass)
//controller section
const User =require('../Model/User');
const bcrypt=require('bcryptjs');
const jwt=require('jsonwebtoken');
const register =(req,res,next)=>{bcrypt.hash(req.body.password,10,function(err,hashedPass){
if(err){
res.json({
error:err
})
}let user= new User({
firstname:req.body.firstname,
lastname:req.body.lastname,
email:req.body.email,
password:hashedPass
})
user.save()
.then(user=>{
res.json({
message:"User Added Successfully"
})
}).catch(error=>{
res.json({message:'An error Ocurred'});})
})
}
module.exports={register}
您收到的错误是由于请求正文中未定义密码所致。所以在
req.body.password
函数中执行bcrypt.hash
会抛出错误Cannot read properties of undefined (reading 'password')
。
确保在发送 HTTP 请求时在请求正文中指定密码。
此错误表明 JSON 数据未从请求正文中解析。 您可以使用解析中间件,例如 bodyparser (https://www.npmjs.com/package/body-parser) 或express.json。
对于主体解析器,请将此块添加到您的代码中:
const bodyParser = require('body-parser');
const express = require('express');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
对于express.json,请将此行添加到您的代码中:
const express = require('express');
const app = express();
app.use(express.json());