最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

E11000重复键错误索引:myproject.users。$ username

运维笔记admin15浏览0评论

E11000重复键错误索引:myproject.users。$ username

E11000重复键错误索引:myproject.users。$ username

我尝试将新用户添加到数据库中,一次添加,第二次添加错误

{MongoError:E11000重复键错误索引:myproject.users。$ username_1 dup key:{:null}在Function.create(D:\ projects \ myproject \ server \ node_modules \ mongodb-core \ lib \ error.js:43: 12)在coll.s.topology.insert上的toError(D:\ projects \ myproject \ server \ node_modules \ mongodb \ lib \ utils.js:149:22)(D:\ projects \ myproject \ server \ node_modules \ mongodb \ lib \ operations \ collection_ops.js:859:39)在D:\ projects \ myproject \ server \ node_modules \ mongodb-core \ lib \ connection \ pool.js:532:18 at process._tickCallback(internal / process / next_tick。 js:61:11)driver:true,name:'MongoError',index:0,code:11000,errmsg:'E11000 duplicate key error index:myproject.users。$ username_1 dup key:{:null}',[Symbol (mongoErrorContextSymbol)]:{}}

users.js

const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');

const validateRegisterInput = require('../../validation/register');

const User = require('../../models/User');

// @route   GET api/users/test
// @desc    Tests users route
// @access  Public
router.get('/test', (req, res) => res.json({msg: 'Users Works'}));

// @route   POST api/users/register
// @desc    Register user
// @access  Public
router.post('/register', (req, res) => {
  const {errors, isValid} = validateRegisterInput(req.body);

  // Check Validation
  if (!isValid) {
    return res.status(400).json(errors);
  }

  User.findOne({email: req.body.email}).then(user => {
    if (user) {
      errors.email = 'Email already exists';
      return res.status(400).json(errors);
    } else {

      const newUser = new User({
        name: req.body.name,
        email: req.body.email,
        password: req.body.password
      });

      bcrypt.genSalt(10, (err, salt) => {
        bcrypt.hash(newUser.password, salt, (err, hash) => {
          console.log(333)
          if (err) throw err;
          newUser.password = hash;
          newUser
            .save()
            .then(user => res.json(user))
            .catch(err => console.log(err));
        });
      });
    }
  });
});

module.exports = router;

Users.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    default: Date.now()
  }
});

module.exports = User = mongoose.model('users', UserSchema);
回答如下:

我解决了我的问题,我不知道为什么,但是数据库中有索引字段,我删除它们并且它都工作了

发布评论

评论列表(0)

  1. 暂无评论