Когда контент страницы подключается к макету
сайта, тайтл должен соответствовать этой
подключенной странице. Это легко реализуется
через передачу тайтла вторым параметром метода
render
, ведь эти данные будут доступны
как в файле контента, так и в общем макете.
Давайте назначим для трех страниц различные тайтлы:
app.get('/page/1/', function(req, res) {
res.render('1', {title: 'title 1'});
});
app.get('/page/2/', function(req, res) {
res.render('2', {title: 'title 2'});
});
app.get('/page/2/', function(req, res) {
res.render('2', {title: 'title 2'});
});
Можно упростить:
app.get('/page/:page/', function(req, res) {
res.render(req.params.page, {title: 'title ' + req.params.page});
});
А теперь давайте выведем наш тайтл в макете страницы:
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<header>
header
</header>
<main>
{{{body}}}
</main>
<footer>
footer
</footer>
</body>
</html>
Пусть на вашем сайте есть следующие страницы:
- views/
- index.hbs
- about.hbs
- conctacs.hbs
- price.hbs
Пусть тайтлы ваших страниц хранятся в объекте, ключами которого служат адреса страниц, а значениями - их тайтлы:
let titles = {
index: 'главная страница',
about: 'о нас',
conctacs: 'контакты',
price: 'наш прайс'
}
Реализуйте вывод тайтлов для страниц.