Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

262
Vistas
No se puede registrar un nuevo usuario

Estoy creando un sitio web de comercio electrónico con la pila MERN pero no puedo registrar un nuevo usuario. Solo registra al primer usuario cuando borro la base de datos, pero luego muestra un código de error. Aquí está el código: El esquema de usuario:

 const mongoose = require("mongoose"); const UserSchema = new mongoose.Schema( { username: {type: String, required: true, unique: true,}, email: {type: String, required: true, unique: true, sparse: true,}, password: {type: String, required: true,}, isAdmin: {type: Boolean, default: false,}, }, { timestamps: true } ); module.exports = mongoose.model("User", UserSchema);

El controlador de usuario:

 const cryptoJS = require("crypto-js"); const User = require("../models/User"); // register const registerUser = async (req, res) => { const newUser = new User({ username: req.body.username, email: req.body.email, password: cryptoJS.AES.encrypt( req.body.password, process.env.SECRET_KEY ).toString(), }); console.log(newUser); try { await newUser.save(); res.json(newUser); } catch (err) { res.status(500).json(err); } };

El error :

 { "index": 0, "code": 11000, "keyPattern": { "name": 1 }, "keyValue": { "name": null } }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

El código de error 11000 ( ref ) indica un valor duplicado para una clave única. Del error podemos leer que es un campo de name con valor null . Esto significa que está intentando guardar otro documento con un valor null en el campo de name , tiene un error en su código que está leyendo el nombre de usuario incorrectamente de la solicitud http entrante (a menos que esté enviando específicamente un campo vacío desde la interfaz). Verifique primero la base de datos para ver si tiene un documento con nombre de usuario null . Luego verifique que esté enviando los datos correctos a la API

about 4 years ago · Juan Pablo Isaza Denunciar

0

Eliminar la base de datos de ATLAS ayudó. Ejecuté el servidor después de eliminar la colección de ATLAS y funciona bien.

about 4 years ago · Juan Pablo Isaza Denunciar

0

así que creo que anteriormente podría haber tenido "nombre" como un campo obligatorio en su definición de UserSchema. por lo tanto, todavía espera que cada usuario tenga un campo y un valor de "nombre" que explique el error. borrar/sincronizar índices debería ordenarlo. puede dro indexar manualmente en mongodb para esa colección específica o usar mongoose para sincronizar los índices como se ve aquí .

Acabo de ver que OP resolvió el problema al eliminar la base de datos ... aunque esto seguramente lo soluciona, es drástico. Estoy seguro de que el error fue causado por la falta de un campo obligatorio. por lo tanto, si la situación vuelve a surgir, solo eliminar los índices será toda la ayuda que necesita, evitando eliminar otras colecciones que no se ven afectadas por el índice.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda