Ошибка: необработанное событие «ошибка». (E11000 индекс ошибки дублированного ключа: eventica.users. $ WalletAddress_1 dup ключ: {: null}) - PullRequest
0 голосов
/ 04 июля 2019

Я использую одну и ту же коллекцию как для администратора, так и для пользователя, но администратор использует поле адреса кошелька, и оно уникально, но пользователю не нужен адрес кошелька, поэтому у меня не было схемы, когда пользователь подписывает процесс, он получает ошибку.Что не так с моим кодом?

та же база данных и та же коллекция при регистрации администратора, изменение схемы коллекции

Ошибка:

Ошибка: необработанное событие «ошибка»,(E11000 индекс ошибки повторяющегося ключа: eventica.users. $ WalletAddress_1 dup ключ: {: null})

Схема:

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

const UserSchema = new Schema({
    firstname: String,
    lastname: String,
    gender: String,
    dob: {
        type: Date
    },
    email: String,
    password: String,
    mobileNo: String,
    nationality: String,
    country: String,
    residence: String,
    address: String,
    employmentStatus: String,
    jobTitle: String,
    currentEmployer: String,
    industry: String,
    annualIncome: String,
    otherIncome: String,
    religion: String,
    netAsset: String,
    declaration: {
        type: Boolean,
        default: false
    },

    status: {
        type: String,
        default: 'New'
    },
    created: {
        type: Date,
        default: Date.now
    },
    seed: String,
    restToken: String,
    accountType: {
        type: String,
        default: 'User'
    },
    permenantAddress: {
        type: Object
    },
    presentAddress: {
        type: Object
    },
    uid: {
        type: String
    },
    proimg: String
});

UserSchema.methods.comparePassword = function comparePassword(password, callback) {
    bcrypt.compare(password, this.password, callback);
};

Контроллер Javascript файл:

app.post("/signup", function (req, res) {

    sess = req.session;

    var email = req.body.email;
    var password = req.body.password;
    var repeatpassword = req.body.repeatpassword;
    var firstname = req.body.firstname;
    var lastname = req.body.lastname;

    const userData = req.body;

    // var currency = "USD";
    //  if (country == "Korea, Republic of") {
    //       currency = "KRW"
    //  } 

       // userData["status"] = config.get('general.userSignupInitStatus'); // "PENDING";
        // userData["currency"] = currency;

    const newUser = new User(userData);

    if (password != repeatpassword) {
      //  req.flash('error', 'Password and Confirm password are not same....');
      return res.redirect('/signup');
    }


    User.findOne({ email: req.body.email }, (errUser, userFound) => {
      if (errUser) {
        req.flash('error', 'Sign up...error, please try again...');
        return res.redirect('/signup');
      }
      if (userFound) {
        req.flash('error', 'User account exists for this email address, reset password if you forgot the password');
        return res.redirect('/signup');
      }
      else {
        newUser.save((err) => {
          if (err) { console.log(err); throw err.message; }
          // mail chimp integration 

          sess.user = newUser;
          res.redirect("/eventica");
        }); // save
      } // if user found
    }); //findUser
  }); // signup
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...