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

349
Views
¿Cómo devolver el resultado de la función Node.js mysql2 query() en un código que no es Promise?

He escrito una función basada en Promise que funciona de la manera que pretendía, pero no pude escribir una función que funcione solo con devoluciones de llamada. He creado el siguiente código que está destinado a devolver el resultado de una consulta de selección:

 function getUserByEmail(email) { let sql = `SELECT * FROM userlogin WHERE Username = ?`; con.query(sql, email, (err, result) => { if (!err) { return result[0]; // callback returns the result } else { return err; } }) }

En el caso del código anterior, la función devuelve indefinido, porque la función de orden superior no devuelve nada, pero la devolución de llamada sí.

Luego probé la función a continuación, pero en este caso con.query() devuelve un objeto que no entiendo y no tiene el resultado de la consulta en ninguna parte para encontrarlo en sus atributos.

 function getUserByEmail(email) { let sql = `SELECT * FROM userlogin WHERE Username = ?`; let result = con.query(sql, email, (err, result) => { if (!err) { return result[0]; // callback returns the result } else { return err; } }); return result; }

No tengo ideas, sé que si pudiera hacer que con.query() devuelva el valor de retorno de la devolución de llamada, podría obtener el resultado, pero ¿cómo lo hago?

A continuación se muestra la versión de la función que escribí con Promises, que devuelve el resultado de la consulta como pretendía.

 function getUserByEmail(email) { let sql = `SELECT * FROM userlogin WHERE Username = ?`; return new Promise((resolve, reject) => { con.query(sql, email, (err, result) => { if (!err) { resolve(result[0]); } else { console.log(err); reject(err); } }) }) }
about 4 years ago · Juan Pablo Isaza
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!