Actualmente estoy trabajando en el proyecto node.js + express + mongoDB. Estoy tratando de manejar el error que ocurre cuando no se pueden recibir datos de la base de datos. Estoy simulando esto terminando el proceso mongod en la consola y llamando a .get en Postman. Lamentablemente, en lugar de obtener un error en Postman, solo obtengo un rechazo de promesa no manejado en la consola. Leí muchas publicaciones sobre el manejo de errores y las implementé de acuerdo con esta guía: https://expressjs.com/en/guide/error-handling.html . Agradecería cualquier idea de cómo puedo solucionar esto.
El código:
Imprimiendo todos los cursos:
router.get("/", async (req, res, next) => { try { const courses = await Course.find().sort("dishName"); res.send(courses); } catch (ex) { next(ex); } });error.js:
module.exports = function (err, res, req, next) { res.status(500).send(`500 Error`); };índice.js
const error = require(`./middleware/error`); app.use(error);app.use(error) se coloca como la última app.use
Hay un pequeño error en tu código. No se debe cambiar el orden de los parámetros req y res en la función del controlador de errores.
// Error.js module.exports = function (err, req, res, next) { res.status(500).send(`500 Error`); };