Передача тайтла в Handlebars в Express

Когда контент страницы подключается к макету сайта, тайтл должен соответствовать этой подключенной странице. Это легко реализуется через передачу тайтла вторым параметром метода 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: 'наш прайс' }

Реализуйте вывод тайтлов для страниц.