Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

300
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!