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

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

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 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!