Controlar el error 404 en inert y el error de validación

Clase 17 de 35Curso de Node.js con Hapi

Resumen

El error 404 que ya estamos controlando es el que está relacionado con las rutas de nuestra aplicación, sin embargo, falta controlar la visualización de este mismo tipo de error para los archivos estáticos que usamos en nuestra interfaz y que estamos cargando con inert. Para esto haremos una nueva función en el controlador del sitio para el manejo de not found de los archivos estáticos.

Básicamente lo que haremos será interceptar el error de boom devuelto por inert con response.isBoom y analizar si su código es 404 para redireccionar entonces a la vista apropiada. Para poder hacer la intercepción del error y alterar el life cycle del request, es necesario indicar la siguiente instrucción server.ext( 'onPreResponse', handler ) antes de la definición de las rutas en el script principal.

Cuando interceptamos el life cycle de un request, debemos hacer un .takeover() para forzar la finalización del ciclo, y esto lo hacemos luego del code(n) en el llamado a la vista.