Etiqueta: orm

  • Cómo gestionar errores de la base de datos con Prisma en Express en nuestra API

    Cómo gestionar errores de la base de datos con Prisma en Express en nuestra API

    Es importante gestionar adecuadamente los errores que son generados por nuestra base de datos gestionada con Prisma cuando creamos una API para nuestra aplicación en JavaScript o TypeScript.

    Como primera opción podemos usar los bloques try-catch. Podemos envolver las consultas a la base de datos en un try-catch y gestionar cualquier error que pueda ocurrir. Por ejemplo:

    try {
      const result = await prisma.users.create({
        data: { name: 'José' }
      });
    } catch (err) {
      console.error(err);
      return res.status(500).send({ error: 'Ocurrió un error creando el usuario.' });
    }

    Otra opción es valerse del método catch propio de la llamada de Prisma a la consulta y gestionar en él cualquier error que suceda accediendo a la base de datos. Por ejemplo:

    prisma.users.create({
      data: { name: 'José' }
    }).catch((err) => {
      console.error(err);
      return res.status(500).send({ error: 'Ocurrió un error creando el usuario.' });
    });

    Como última opción, podemos crear un middleware en Express para gestionar estos errores que puedan suceder en nuestras rutas. Aquí necesitaremos hacer uso de una función next() en nuestras rutas y enviar el error a través de ella. El middleware podría ser algo como:

    app.use((err, req, res, next) => {
      console.error(err);
      return res.status(500).send({ error: err.message });
    });

    y en la ruta haremos algo como:

    next(new Error("Ocurrió un error creando el usuario.")
    

    Esto es todo. Espero que algunas de estas opciones te resulten de utilidad. Señalar que en Express 5 el middleware de errores promete gestionar también los errores de fuentes asíncronas.

    Para saber más: