【问题标题】:Getting error while rising a post request on react mongo db在反应 mongodb 上提出发布请求时出错
【发布时间】:2020-02-04 08:44:57
【问题描述】:

请帮我解决以下问题。当我试图将用户添加到数据库时,它显示错误"Error:MongoError: E11000 duplicate key error collection: test.users index: username_1 dup key: { : null }"

下面是我请求的post请求。

{
    "name":"dddd",
    "email":"thomaslss",
    "password":"ssss",
    "mobilenumber":"ssss"
}

下面是mongo db的用户方案

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const userSchema = new Schema ({
    name:{
        type: String,
        required:true,
        unique:true,
        trim:true,
        minlength:3
    },
    email:{
        type: String,
        required:true,
        unique:true,
        minlength:3
    },
    password:{
        type: String,
        required:true,
        minlength:3
    },
    mobilenumber:{
        type:Number,
        required:true,
        minlength:3
    },

},{
    timestamps:true,
}

);

const User =mongoose.model ('User',userSchema);

module.exports = User;

下面是我提交数据时的onSumbit方法

  onSubmitHandler=(e)=>{
                    e.preventDefault();

                    const user={
                        name:this.state.name,
                        email:this.state.email,
                        password:this.state.password,
                        mobilenumber:this.state.mobilenumber
                    }
                    console.log(user);
                    axios.post('http://localhost:5000/users/add',user)
                    .then(res=>console.log(res.data));
    }

find the back end code which i wrote

const router =require ('express').Router();
let User = require('../models/user.model');


router.route('/').get((req,res)=>{
    User.find()
    .then(users=>res.json(users))
    .catch(err=> res.status(400).json('Error:'+err))
});


router.route('/add').post((req,res)=>{
    const name= req.body.name;
    const email= req.body.email;
    const password= req.body.password;    
    const mobilenumber= req.body.mobilenumber;    


    const newUser = new User({name,email,password,mobilenumber});

    newUser.save()
    .then(()=>res.json("user added"))
    .catch(err=> res.status(400).json('Error:'+err))
});

module.exports = router;

注意:我已经检查了 mongo db 数据库,但字段没有任何重复值

以下是 db 中存在的 mongo db 数据

[{"_id":"5d9aaff88709f423740e8a37","name":"seee","email":"rrrt","password":"fftyg","mobilenumber":45778,"createdAt":"2019-10-07T03:24:40.642Z","updatedAt":"2019-10-07T03:24:40.642Z","__v":0}]

请帮我解决问题。在此先感谢:)

【问题讨论】:

    标签: reactjs mongodb express postman


    【解决方案1】:

    这可能是您的后端错误。你的反应代码看起来很好,如果你在控制台记录它时正确显示用户对象,你的参数应该被正确发送。您是否 100% 确定在发送请求之前您的状态变量没有未定义?您介意分享处理此问题的后端代码吗?

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 2019-10-10
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多