No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Gestión avanzada de errores: Throw

13/29
Recursos

Aportes 22

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Esta clase es magistral. Cada vez me doy cuenta de que no conozco nada jajaja

les comparto mi implementación del middleware de error

const Sentry = require('@sentry/node');
const debug = require('debug')('api:error');
const config = require('./../config');
const response = require('./../network/response');

const sentryUrl = `https://${config.sentry.dns}@sentry.io/${config.sentry.id}`;
Sentry.init({ dsn: sentryUrl });

function withErrorStack(err, stack) {
    if (config.dev) {
        return { ...err, stack }
    }
}

function logErrors(err, req, res, next) {
    Sentry.captureException(err);
    debug(err.stack);
    next(err);
}

function errorHandler(err, req, res, next) {
    const { statusCode } = err;
    response.error(req, res, withErrorStack(err, err.stack), statusCode);
}

module.exports = {
    logErrors,
    errorHandler,
}

en el curso de backend con node y el de passport js, se trabaja con un libreria @hapi, la cual tiene un modulo para el manejo de errores que es @hapi/boom y @hapi/joi para validaciones, con unas simples lineas se le da manejo al error, es muy practico, lo mismo con las validaciones.

Usando custom error en lugar de throw new Error()

Fantástico ahora mi código está mucho más organizado con los cursos de carlos, que fácil es aprender Node con él.

Entiendo el uso del helper lo que no entiendo es porqué repetimos en network/response la misma logica del status code y status msg.

Ahora tenemos todos los errores centralizados dentro de utils/error, con lo cual no deberiamos llamar a network error sino llamar a utils/error y es este error catcheado por network error.

Podemos modificar entonces network/response la function error

exports.error = (req, res, message, status) => {
  res.status(status).send({
    error: true,
    status,
    body: message
  });
};

¿como funciona el next?

Definitivamente, muy buena clase

La clase es buena aunque se agradecería que no repita nombres de archivos ya que eso genera mucha confusión. En utils tenemos error.js y en network tenemos errors.js

Fijesé que igual le devuelve un error:false cuando debería ser true, supongo que se solucionara en adelante.

Estoy super confundido con el archivo “secure” en users, hay una función “checkAuth” que recibe el parametro “action” y adentro “middleware” con los argumentos “req, res, next”. Si mal no entiendo, middleware se ejecuta cuando se devuelve al invocar checkAuth desde router.put, pero el único argumento es lo que afecta al switch, ¿los parámetros req, res y next cómo le llegan al middleware?

Aqui un poco mas de infromación. Acerca de este trucaso para el manejo de errores.

handle errors

creando la fucnion error en la carpeta util, ya no haria falta el error.js de la carpeta network?

sacando brillo a el mundo magico de nodejs

Fantástico ahora mi código está mucho más organizado con los cursos de carlos, que fácil es aprender Node con él.

Excelente clase!

Genial esta clase, el orden para realizar el proyecto me parece genial, aunque a veces al repetir algunos nombres en carpetas me he confundido, ese orden hace que el código en general sea más fácil de entender

Justo ese error, estaba pensando como solucionarlo

Para las personas que tengan dudas con los middlewares les dejo la documentación donde vienen explicadas algunas cosas así como el uso e implementación de ellos.

el middleware de errors que le pasamos a la app de express manejara todos los errores y excepciones no manejadas?

quede muy confundido con esta clase, no entendi en que momento se llamo la funcion de network/errors.js ni porque va como middleware hasta el final