Qué es template engine y cómo crearlo
Clase 6 de 43 • Curso de Express.js 2018
Resumen
Template engine es una implementación de software que nos permite mezclar datos con una plantilla con el fin de generar un documento que será renderizado en el navegador. Algunos de los template engines más conocidos son:
-
Handlebars (para JavaScript),
-
Twig y Blade (para Laravel / PHP)
-
JSP (para Java)
-
Ninja (de Python).

Template engine express
Express nos permite crear nuestro propio template engine personalizado. Además permite el uso de múltiples engines según la extensión de los archivos que le hayamos indicado.
app.engine('<extension>', function( filePath, options, callback ){});
app.set('views', '<directorio-de-vistas>');
app.set('view engine', '<extension>');
Donde filePath
indica la ruta del template, options
indica las variables que vamos a mezclar con el template y callback
será la función que mezcle la plantilla con las opciones para obtener el documento que será mostrado en el navegador.
Algo importante que debemos notar es que en Node los callbacks son ""error first"", por lo que el primer parámetro devuelto por las funciones, por lo general será siempre el objeto que contenga los detalles del error, si existe esa falla.
Además, en el objeto options recibido en el callback del engine, no solo se pasan las variables que definimos en la llamada, sino otros datos como settings y locals que deberemos descartar cuando estamos creando nuestro propio engine, pero que, cuando trabajamos con los template engines predefinidos, es Node quien se encarga de manejarlos.