Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
Express y Mysql2 que devuelven resultados de la consulta db

Estoy tratando de devolver los resultados (una matriz de objetos json) de mi función get_salt_and_hash(). Entonces quiero usar los resultados en otra función. (En este caso, la longitud de la matriz de resultados es uno).

Sin embargo, después de llamar a get_salt_and_hash() en mi otra función, cuando trato de imprimir el objeto no estoy definido. No estoy seguro de por qué, ya que funciona console.log (resultados) en la función original. Podria alguien ayudarme.

 const get_salt_and_hash = (email) => { const query = `SELECT p_salt, p_hash FROM USERS_TABLE WHERE email= "${email}"`; db.query(query, (err, results) => { if (!err) { console.log(results); return results[0]; } else { throw err } })} const verify_user = (email, password) => { let result_obj = get_salt_and_hash(email); console.log(result_obj); // const p_hash = result_obj['p_hash']; // const p_salt = result_obj['p_salt']

}

Sospecho que tiene algo que ver con el código asíncrono, ya que lleva tiempo realizar la consulta de db, pero no sé nada sobre javascript asíncrono, así que pensé que sería mejor preguntarle a otros.

¡Gracias por adelantado!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Tiene razón en eso, lleva tiempo obtener resultados de db, así que simplemente prometa la función query(), para que pueda usar await en la llamada a la función query(), modifiqué su código a continuación y prometí la consulta().

 // Not tested. const util = require('util'); const get_salt_and_hash = async (email) => { const query = `SELECT p_salt, p_hash FROM USERS_TABLE WHERE email= "${email}"`; const promisifiedQuerFunction = util.promisify(db.query).bind(db); let results = await promisifiedQuerFunction(query); return results[0]; } const verify_user = async (email, password) => { let result_obj = await get_salt_and_hash(email); console.log(result_obj); }

Puede aprender cómo escribir funciones asíncronas desde aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda