Движок представлений EJS
Для того чтобы отображать в Express файлы шаблонов, необходимо...
Установите соответствующий пакет npm шаблонизатора:
npm install ejs --saveВ приложении подключите модуль:
const ejs = require('ejs');Задайте следующие параметры приложения:
views, каталог, в котором находятся файлы шаблонов. Например:app.set('views', './views');view engine, используемый шаблонизатор. Например:app.set('view engine', 'ejs');
Создаёте шаблон, например, главной страницы с названием main.ejs в папке views :
<!DOCTYPE html>
<html lang="ru">
<head>
<!-- Head -->
<%- include("partials/head.ejs") %>
</head>
<body>
<!-- Nav -->
<%- include("partials/nav.ejs") %>
<!-- Main -->
<main>
<div class="container">
<% if (content) { %>
<h1><%=content%></h1>
<% } %>
</div>
</main>
</body>
<!-- Footer -->
<%- include("partials/footer.ejs") %>
<!-- Scripts -->
<%- include("partials/scripts.ejs") %>
</html>Затем для главной странице подгружаете шаблон страницы в app.js и передаёте параметры на эту страницу:
app.get('/', (request, response) => {
response.render("main", {
title: "Главная страница",
content: "Hello there!"
});
});Если вы ещё не заметили по шаблону для главной странице то обратите внимание ещё раз... В шаблоне подключаются различные отдельные части (head, nav, footer, script).
По адресу /views/partials/ вы должны создать такие файлы с расширением .ejs.
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title><% if (title) { %><%=title%><% } %></title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<style>
body {
display: flex; flex-direction: column; min-height: 100vh; height: 100% !important;
}
main {
flex: 1 0 auto; position: relative;
}
</style><script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>Если вы в коде хотите, чтобы подключились локальные CSS файлы, тогда в app.js нужно дописать следующее:
app.use(express.static(__dirname + '/'));Last updated
Was this helpful?