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

299
Vistas
Mongoose: comprensión de las devoluciones de llamada frente a Async/Await

Estoy tratando de entender las devoluciones de llamada en mongoose. Realmente solo quiero aclarar mi comprensión para poder estar seguro de que estoy en el camino correcto.

Entiendo el uso de async/await para hacer consultas en mongodb usando mongoose. Por ejemplo, el siguiente código obtendrá un usuario de mi base de datos, suponiendo que mi modelo "Usuario" esté configurado correctamente.

 const getUser = async () => { const user = await User.find({username: "John"}) return user }

Aquí está mi problema. Estoy trabajando en el proyecto odin y encontré una sección donde se usan devoluciones de llamada en lugar de async/await. He leído parte de la documentación de la mangosta sobre el asunto sin suerte.

Aquí hay un ejemplo con el que estoy trabajando:

 passport.use( new LocalStrategy((username, password, done) => { User.findOne({username: username}, (err, user) => { if (err) { return done(err) } if (!user) { return done(null, false, {message:"Incorrect Username"}) } if (user.password !== password) { return done(null, false, {message: "Incorrect password"}) } return done(null, user) }) }) )

Entiendo la mayor parte de lo que está sucediendo aquí, pero no entiendo cómo esto puede funcionar sin el uso de async/await. Estoy mirando específicamente en la línea:

 User.findOne({username: username}, (err, user) => {callback})

Supongo que se consulta la base de datos y, si se encuentra el usuario, los datos de la consulta se almacenan en el parámetro "usuario".

Si la consulta falla y no se devuelven datos, el usuario se vuelve nulo y nuestro parámetro err contendrá un mensaje.

¿Es esto correcto?

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

0

Puedes usar un concepto simple

 async getUserList(){ try{ const users = User.findOne({username: username}); return users; }catch(error){ throw error; } }

función de llamada en cualquier lugar

console.log(getUserList());

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