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

340
Vistas
¿Es un Try/Catch redundante en una consulta MySQL de Node.js?

Estoy configurando un sistema que consultará una base de datos MySQL para registrar y eliminar personal y demás. Me preguntaba si es necesario tener la consulta en un bloque try catch o si simplemente es redundante. Tengo un ejemplo a continuación. Tengo entendido que esto arrojará un error pero no bloqueará el sistema como lo hará, como lo hace un intento/captura, detecta el error y deja que el servidor siga funcionando.

 var con = mysql.createConnection({ host: 'mysql1', user: 'root', database: 'assignment', password: 'admin' }); let sqlQuery = `INSERT INTO CBOdb (staffName, staffID, staffPassword, time) VALUES ('${staffName}', '${staffID}', '${staffPassword}', NOW())`; try { con.query(sqlQuery, function(err, result) { if (err) { throw err; } else { res.send(0) } }) } catch { res.send(1) //"**Error ecounterd, staff not registerd**\nPlease contact system Administrator.") }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Es un Try/Catch redundante en esta consulta MySQL de Node.js?

Sí, es innecesario. Los errores de la consulta no se comunican a través de excepciones síncronas que puede detectar con try/catch . Se comunican a través del argumento err a la devolución de llamada.

Como se mencionó en los comentarios, hay un par de versiones diferentes del módulo mysql para nodejs. Está utilizando la versión original basada en devoluciones de llamada simples. Hay otra versión del módulo llamada mysql2 que admite promesas y esto le brinda algunas formas más modernas de llamar a mysql y manejar errores usando promesas, await y try/catch .

Aquí hay un ejemplo del uso de await y captura de errores con try/catch usando la interfaz mysql2/promise.

 const mysql = require('mysql2/promise'); app.get("/somePath", async (req, res) => { // this needs to be inside an async function so you can use await const con = await mysql.createConnection({ ... }); let sqlQuery = `INSERT INTO CBOdb (staffName, staffID, staffPassword, time) VALUES ('${staffName}', '${staffID}', '${staffPassword}', NOW())`; try { const result = await con.query(sqlQuery); res.send(0) } catch(e) { console.log(e); res.send(1); //"**Error ecounterd, staff not registerd**\nPlease contact system Administrator.") } });
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