Middleware notFound

Overview

El archivo services/api/src/middlewares/notFound.js define un middleware de Express para rutas inexistentes. Responde siempre con HTTP 404 y un JSON fijo con el mensaje Ruta no encontrada. La documentación operativa del backend lo coloca al final del montaje de Express, junto con errorHandler.

Este middleware funciona como cierre del flujo de enrutado. Cuando ninguna ruta registrada coincide, la petición termina aquí con una respuesta consistente. No consulta datos, no inspecciona la petición y no delega el control a otro middleware.

[!NOTE] Este middleware no llama a next(). Su única responsabilidad es enviar la respuesta final.

How it works

La función recibe dos parámetros: _req y res. Ignora la petición y usa res para construir la salida HTTP. Cuando se ejecuta, establece el estado 404 y devuelve el JSON {"error":"Ruta no encontrada"}. La función termina inmediatamente después de enviar la respuesta.

export function notFound(_req, res) {
  res.status(404).json({ error: 'Ruta no encontrada' });
}

La implementación es directa y no contiene ramificaciones internas. No valida cabeceras, no lee parámetros y no accede a almacenamiento externo. Su comportamiento es siempre el mismo.

Key components

{
    "title": "notFound",
    "content": "Middleware p\u00fablico de Express que responde con 404 y un JSON fijo cuando no existe una ruta.",
    "type": "function",
    "filePath": "services/api/src/middlewares/notFound.js",
    "badges": [
        "public"
    ]
}

Este archivo solo expone una función pública. No define clases, constantes ni utilidades auxiliares. Tampoco declara dependencias locales adicionales.

Data & fields

La función no maneja un modelo de datos propio. Solo recibe los argumentos estándar de un middleware de Express.

[
    {
        "name": "_req",
        "type": "Request de Express",
        "description": "Se recibe por la firma del middleware, pero no se utiliza."
    },
    {
        "name": "res",
        "type": "Response de Express",
        "required": true,
        "description": "Se usa para enviar el estado 404 y la respuesta JSON."
    }
]

La salida contiene una sola propiedad. El texto es fijo y no cambia según la URL solicitada.

{
  "error": "Ruta no encontrada"
}
  • error [badge:required] string — Indica que la ruta solicitada no existe.
  • No hay campos adicionales.
  • No hay metadatos de depuración.

Behaviors

  • notFound — Envía una respuesta 404 cuando ninguna ruta coincide.
  • notFound — Devuelve un cuerpo JSON con el campo error.
  • notFound — Ignora el objeto _req.
  • notFound — No usa next() ni transfiere el control.
  • notFound — Produce siempre el mismo mensaje: Ruta no encontrada.

Workflows

No aplica. Este archivo solo resuelve la respuesta final para una ruta no registrada. No define un flujo multietapa ni un procedimiento de negocio.

Gotchas & edge cases

[!WARNING] El mensaje es constante para cualquier ruta no resuelta. La función no distingue entre un recurso ausente y otros problemas de enrutado.

[!IMPORTANT] notFound aparece al final del montaje de Express en services/api/src/app.js. Ese orden define cuándo se ejecuta frente a otras rutas y middlewares.

services/api/src/app.js monta este middleware al final de la cadena de Express. Ese archivo también registra las rutas principales del backend antes del fallback final.

services/api/src/middlewares/errorHandler.js completa el manejo de errores HTTP. A diferencia de notFound, ese middleware normaliza errores con estado, mensaje y detalles opcionales.

services/api/src/utils/apiError.js se relaciona con el manejo de errores general. La documentación del backend lo vincula con errorHandler, no con notFound.