类型错误:无法读取未定义的属性(读取“密码”)

问题描述 投票:0回答:2
  1. 我收到线路错误:
    bcrypt.hash(req.body.password,10,function(err,hashedPass)
  2. 请帮我弄清楚。
//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}
node.js mongodb passwords bcrypt
2个回答
0
投票

您收到的错误是由于请求正文中未定义密码所致。所以在

req.body.password
函数中执行
bcrypt.hash
会抛出错误
Cannot read properties of undefined (reading 'password')

确保在发送 HTTP 请求时在请求正文中指定密码。


0
投票

此错误表明 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());
© www.soinside.com 2019 - 2024. All rights reserved.