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

165
Vistas
Nomenclatura de documentos MongoDB

He intentado muchas veces cosas diferentes, pero no puedo entender que cada vez que guardo datos en MongoDB, ¿por qué obtengo el nombre de ese documento como se muestra a continuación?

Usuario.js

 const mongoose = require("mongoose"); const Schema = mongoose.Schema; const userSchema = new Schema({ email: { type: String, require: true, unique: true, lowercase: true, }, username: { type: String, require: true, unique: true, maxLength: 7, }, password: { type: String, require: true, minLength: 8, }, }); const User = mongoose.model("user", userSchema); module.exports = User;

Cuando guardé los datos presionando la API a través del cartero e imprimiendo los datos en la consola, los datos que recibo son los siguientes:

 email { _id: new ObjectId("627a4ae94b8958e3fe968311"), email: 'abc@abc.com', username: 'fzee07', password: 'test1234', __v: 0 }

Entonces, mi pregunta es por qué este objeto se guarda y se nombra como "correo electrónico" .

registrarseUsuario.js

 const User = require("../../models/User"); const registerUser = async (req, res) => { const { email, username, password } = req.body; try { const e_mail = await User.findOne({}); console.log("email", e_mail); if (e_mail.email === email) { res.status(409).json({ success: false, msg: "User already exists", }); } else { if (username.length < 8) { if (password.length >= 8) { const user = User.create({ email, username, password }); res.status(201).json({ success: true, data: "User Created", }); } else { res.status(401).json({ success: false, data: "Password muste be minimum 8 characters", }); } } else { res.status(401).json({ success: false, data: "Username must be less than 8 characters", }); } } } catch (err) { console.log(err); } }; module.exports = registerUser;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ahora entiendo el problema. Disculpe la confusión, leí mal la segunda parte de su pregunta. La razón por la que obtienes esto en la consola:

 email { _id: new ObjectId("627a4ae94b8958e3fe968311"), email: 'abc@abc.com', username: 'fzee07', password: 'test1234', __v: 0 }

Es porque está registrando en la consola la cadena "email" , luego su objeto de usuario de la base de datos, que confusamente ha llamado e_mail .

Cambie el mensaje de registro para que se vea así, y estará bien:

 console.log("user", e_mail);

De hecho, su código necesita una refactorización severa. En este momento, no es muy legible. Aquí hay una mejora:

 const User = require('../../models/User'); const registerUser = async (req, res) => { const { email, username, password } = req.body; try { // Find a user with that email const user = await User.findOne({ email }); console.log('user', user); // if it exists, return if (user) { res.status(409).json({ success: false, message: 'User already exists', }); return; } // Validate the username and password // If validates, create the user if (username.length < 8 && password.length >= 8) { const newUser = User.create({ email, username, password }); res.status(201).json({ success: true, message: 'User created', data: newUser, }); return; } // If all else fails, return 401 res.status(401).json({ success: false, message: 'Username must be less than 8 characters & password must be at least 8 characters long', }); } catch (err) { res.status(500).json({ success: false, message: 'Server error', }); } }; module.exports = registerUser;

Cambié todos los lugares donde tenías la clave de data para tener la clave de message , ya que los mensajes eran los valores.

Sin embargo, una vez más, realmente recomiendo hacer la validación en el middleware/hooks de Mongoose en lugar de hacerlo directamente dentro de la ruta. Le ahorrará dolores de cabeza a medida que crezca su aplicación.

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