Использование движков шаблонов в Express¶
Движок шаблонов позволяет использовать в приложении статические файлы шаблонов. Во время выполнения движок подставляет в шаблон реальные значения переменных и преобразует его в HTML, который отправляется клиенту. Такой подход упрощает разработку HTML-страниц.
Express application generator по умолчанию использует Pug, но также поддерживает Handlebars, EJS и другие движки.
Чтобы рендерить шаблоны, задайте в app.js (созданном генератором) следующие параметры приложения:
views— каталог, где лежат шаблоны. Например:app.set('views', './views'). По умолчанию это каталогviewsв корне приложения.view engine— используемый движок шаблонов. Например, для Pug:app.set('view engine', 'pug').
Затем установите соответствующий npm-пакет движка шаблонов. Например, для Pug:
1 | |
Движки шаблонов, совместимые с Express (например, Pug), экспортируют функцию __express(filePath, options, callback), которую res.render() вызывает для рендеринга шаблона.
Некоторые движки не следуют этой конвенции. Библиотека @ladjs/consolidate приводит популярные движки Node.js к этому формату, поэтому бесшовно работает с Express.
После настройки view engine не нужно явно указывать движок или загружать его модуль в приложении — Express подгружает модуль сам:
1 | |
Далее создайте файл шаблона Pug index.pug в каталоге views со следующим содержимым:
1 2 3 4 5 | |
Создайте маршрут, который рендерит index.pug. Если свойство view engine не задано, нужно указывать расширение файла view. В противном случае его можно опустить.
1 2 3 4 5 6 | |
При запросе главной страницы файл index.pug будет отрендерен в HTML.
Кэш движка шаблонов кэширует не итоговый HTML, а сам шаблон. Даже при включенном кэше представление рендерится заново для каждого запроса.