Express es un framework para JavaScript/Node que ayuda a facilitar el desarrollo de aplicaciones con node ya sea para crear en unas cuantas lineas un servidor web o facilitar la definición de rutas. Dentro de las características de una aplicación desarrollada con express y la arquitectura MVC es la definición de la Vista o Template, con express se pueden definir diferentes motores de plantillas entre los mas populares: Pug, Ejs, Handlebars, etc. Yo por mi parte prefiero Nunjucks el cual es un port para JavaScript del motor de plantillas de Django, Jinja2 el cual para mi gusto es mas elegante y simple que cualquiera de los anteriores así que veamos como usar este motor con express.

Instalando Nunjucks

Esto es tan fácil como instalar cualquier otro paquete non Npm

$ npm install nunjucks

A continuación solo se le tiene que indicar a express el motor que va a ser usado según la documentación de express para templates y la documentación de Nunjucks

// Llamado a Nunjucks
const nunjucks = require('nunjucks');

// Definicion del directorio de donde se obtine la vista
app.set('views', path.join(__dirname, 'views'));

// Carga del motor de vista Nunjucks
app.set('view engine', 'njk');
nunjucks.configure('views', {
  watch: true,
  autoescape: true,
  express: app
});

En la linea 10 se usa el parámetro watch: true este se usa ya que el watcher de Nunjucks no renderiza los cambios realizados en vivo, con el parámetro watch: true le indicamos al watcher que este pendiente de los cambios cuando los realicemos.

Por ultimo solo queda crear nuestras vistas con la extensión .njk