Шаблон для всех страниц (Layout)

В шаблонном движке ejs не предусмотрено создание общего шаблона для всех страниц. Чтобы это стало возможным, можно установить модуль ejs-mate.

npm install ejs-mate

Указывается модуль через метод app.engine().

var express = require('express');
var app = express;

// подключение «ejs-mate»
app.engine('ejs', require('ejs-mate'));

// установка папки и движка шаблона
app.set('views', 'views');
app.set('view engine', 'ejs');

Теперь надо создать файл, который будет шаблоном для всех страниц.

<!-- views/main.ejs -->

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><%= title %></title>
</head>
<body>
    <%- body -%>
</body>
</html>

Подключается данный шаблон в самом начале файла через метод layout().

<!-- views/about.ejs -->

<% layout('main') -%>
<p>Контент</p>