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

116
Views
¿Cómo puedo manejar los errores de tiempo de ejecución en la aplicación Express?

Soy nuevo en express + node.js, así que escribí una API de descanso usando mongoose. ¿Cuál es la mejor manera de manejar errores de tiempo de ejecución como errores de base de datos, etc.?

He leído en la documentación expresa que puede tener una function(err, res, req, next) para manejar estos errores, y puede llamar a esta función solo llamando a next(err) . Está bien, así que imagina que tienes un modelo Moongose User y en un controlador escribes esta función:

 const find = (email, password) => { User.find({ email: email }, (err, doc) => { if (err) { // handle error } return doc; }); };

Luego, tienes en otro archivo un controlador para una ruta:

 router.get('/users', (req, res) => { userController.find(req.body.email); });

Entonces, en este punto, puede manejar el error mongo escribiendo throw(err) en el modelo y usando try/catch en el controlador para luego llamar a next(err) , ¿verdad? Pero he leído que usar try/catch en JavaScript no es una buena práctica porque crea un nuevo contexto de ejecución, etc.

¿Cuál es la mejor manera de manejar estos errores en Express?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Te sugiero que uses promesas. No solo hace que su código sea más limpio, sino que también el manejo de errores es mucho más fácil. Como referencia, puede visitar this o this .

Si está utilizando mongoose, puede agregar su propia biblioteca de promesa.

 const mongoose = require('mongoose'); mongoose.connect(uri); // plug in the promise library: mongoose.Promise = global.Promise; mongoose.connection.on('error', (err) => { console.error(`Mongoose connection error: ${err}`) process.exit(1) })

Y úsalo como a continuación:

En el controlador:

 const find = (email) => { var userQuery = User.find({ email: email }); return userQuery.exec(); };

En enrutador:

 router.get('/users', (req, res) => { userController.find(req.body.email).then(function(docs){ // Send your response }).then(null, function(err){ //Handle Error }); });
about 4 years ago · Santiago Trujillo 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!