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

141
Vistas
Comprobación del resultado del muestreo de mangosta

En el estudio, me quedé atascado en un punto. Intentando verificar si existe un valor en los documentos de colección de db de MongoDB usando Mongoose. Tengo una función separada que busca una entrada de DB usando findOne. Si eliminamos todo lo innecesario del código, se ve así:

 const checkUserExist = async (userName) => { return await userModel.findOne ({userName}); }; const validateRegistrationData = (inputData) => { const {userName} = inputData; const userExist = checkUserExist (userName); if (userExist) { console.log ('User found') } else { console.log ('User not found') } };

El problema es que siempre devuelve verdadero en este caso.

Probé un par de opciones más:

 if (! userName) { } if (userName === null) { } if (userName! == null) { } if (userName === undefined) { } if (userName! == undefined) { }

Modelo de documento:

 const userSchema = new Schema ( { userName: {type: String, unique: true, required: true}, name: {type: String, required: true}, email: {type: String, unique: true, required: true}, encryptedPassword: {type: String, required: true}, }, );

Este es claramente un error de novato, pero no encontré ninguna información clara sobre esto en la red.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es porque no estás esperando el método checkUserExist() . Debido a que ese método devuelve una promesa, su declaración if siempre resultará verdadera. Si conviertes validateRegistrationData() en un método async y esperas la llamada a await checkUserExist() , debería funcionar como se esperaba.

Algo como esto:

 const validateRegistrationData = async (inputData) => { const {userName} = inputData; const userExist = await checkUserExist(userName); if (userExist) { console.log ('User found') } else { console.log ('User not found') } };
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