Только позволяет мне регистрировать мой API пользователь - NodeJS / MongoDB

Я работаю с NodeJS и MongoDB, чтобы создавать API, которой он помогал бы мне регистрировать пользователи и в момент реестра произвелся accessToken для того, чтобы держался сеанс пользователя. Я нашел код, чтобы этого добиваться и оно я функционировало чуда, но я взял пару недель отдыха и сейчас, когда я вновь снова возьму проект то, что происходит, состоит в том, что приложение только позволяет мне в том, чтобы осматривать человека, если я пробую регистрировать другую, меня производит ошибка

E11000 удвойся key ошибка collection: carlosescobar.usuarios index: username_1 dup key: {: null }

Не если я был должен в обновление, в консоли, когда я инициализирую сервер, у меня выходит следующее сообщение:

(node:10868) DeprecationWarning: current Сервер Дисковери and Monitoring engine is deprecated, and will be переместите in в future версию. To использовал the new Сервер Дисковер and Monitoring engine, pass option { useUnifiedTopology: true } to the строительный MongoClient.

Я оставляю им код модели BD:

var mongoose = require('mongoose');
const Schema = mongoose.Schema;
mongoose.set('useCreateIndex', true);

var UsuariosSchema = new Schema({
  name: {
    type: String, //Tipo de dato
    required: true, //El campo es obligatorio
    trim: true //Los espacios serán eliminados
  },
  email: {
    type: String,
    required: true,
    trim: true,
    unique: true //El elemento debe ser unico y no repetirse
  },
  password: {
    type: String,
    required: true,
    trim: true
  }
}, {
    timestamps: true //Guardar la fecha de creación y de actualización
  });
  
module.exports = UsuariosSchema;

Код DAO:

const mongoose = require('mongoose');
const usuariosSchema = require('../models/usuarios');

usuariosSchema.statics = {
  create: function (data, cb) {
    const user = new this(data);
    user.save(cb);
  },
  login: function (query, cb) {
    this.find(query, cb);
  }
}

const usuariosModel = mongoose.model('Usuarios', usuariosSchema);
module.exports = usuariosModel;

Код Controller:

'use strict'

var Usuarios = require('../dao/usuarios');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');
const SECRET_KEY = 'secretkey123456';


var controller = {

    // METODO PARA REGISTRAR USUARIO
    RegistroUsuarios: function(req, res, next) {
      
      const newUser = {
        name: req.body.name,
        email: req.body.email,
        password: bcrypt.hashSync(req.body.password)
      }
    
      Usuarios.create(newUser, (err, user) => {
        console.log(err);
        if(err && err.code === 11000){
          return res.status(409).send('El email ya esxiste');
        }

        if(err){
          return res.status(500).send('Error del servidor');
        }

        const expiresIn = 24 * 60 * 60;
        const accessToken = jwt.sign({ id: user.id },
          
          SECRET_KEY, {
            expiresIn: expiresIn
        
        });

        const dataUser = {

          name: user.name,
          email: user.email,
          accessToken: accessToken,
          expiresIn: expiresIn

        }

        // response 
        res.send({ dataUser });

      });
    }

Код Routers:

'use strict'

var express = require('express');
var UsuariosController = require('../controllers/usuarios');
var router = express.Router();


//Rutas POST
router.post('/register', UsuariosController.RegistroUsuarios);
router.post('/login', UsuariosController.loginUser);


//Rutas GET

router.get('/users', UsuariosController.getUsers);


module.exports = router;

Заметь: Также я хочу упомянуть о том, что, если я удаляю пользователь, который у меня есть в BD, и я пробую больше реестров, меня осматривает только один новый пользователь, когда я пробую регистрировать другой, не позволяет это мне и у меня выходит ошибка E11000.

0
задан 05.11.2019, 03:20
1 ответ

Она soluciГіn - это простое, удалять ее colecciГіn (таблица) и вновь создавать ее. Моя проблема - что realicГ© изменения в cГіdigo, чтобы тестировать что-то различное, despuГ©s, делать доказательства volvГ, - когда тот же самый добавлять cГіdigo, что было вначале это generГі у конфликта в ней colecciГіn.

1
ответ дан 01.12.2019, 12:46

Теги

Похожие вопросы