Renderizado de vistas - Layout y template del home
Clase 7 de 35 • Curso de Node.js con Hapi
Resumen
En Hapi podemos usar la arquitectura MVC (Modelo-Vista-Controlador) para organizar la lógica de nuestras aplicaciones. Para implementar el uso de vistas es necesario instalar el plugin Vision y configurarlo de la siguiente manera:
server.views({
engines: { // --- hapi puede usar diferentes engines
hbs: handlebars // --- asociamos el plugin al tipo de archivos
},
relativeTo: __dirname, // --- para que las vistas las busque fuera de /public
path: 'views', // --- directorio donde colocaremos las vistas dentro de nuestro proyecto
layout: true, // --- indica que usaremos layouts
layoutPath: 'views' // --- ubicación de los layouts
})
Al crear el archivo layout.hbs evitaremos repetir las mismas secciones de html en cada una de las vistas, remplazando sólo lo relativo al contenido que cambiará según las rutas definidas en nuestra aplicación.
En la definición de las rutas, tendremos que cambiar la respuesta devuelta en handler para que invoque a h.view() en lugar de h.file(), con los parámetros esperados por el layout.
Para poder incorporar el html de las vistas dentro del layout.hbs, es necesario usar triples llaves en lugar de dobles, ya que por defecto Handlebars escapa el código html convirtiéndolo en su equivalente texto plano.