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

Когда контент страницы подключается к макету сайта, тайтл должен соответствовать этой подключенной странице. Это легко реализуется через передачу тайтла вторым параметром метода render, ведь эти данные будут доступны как в файле контента, так и в общем макете.

Давайте назначим для трех страниц различные тайтлы:

index.jsapp.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'});
});

Можно упростить:

index.jsapp.get('/page/:page/', function(req, res) {
  res.render(req.params.page, {title: 'title ' + req.params.page});
});

А теперь давайте выведем наш тайтл в макете страницы:

views/layouts/main.hbs<!DOCTYPE html>
<html>
  <head>
    <title>{{ title }}</title>
  </head>
  <body>
    <header>
      header
    </header>
    <main>
      {{{body}}}
    </main>
    <footer>
      footer
    </footer>
  </body>
</html>
Задание 1

Пусть на вашем сайте есть следующие страницы:

  • views/index.hbsabout.hbsconctacs.hbsprice.hbs

Пусть тайтлы ваших страниц хранятся в объекте, ключами которого служат адреса страниц, а значениями - их тайтлы:

index.jslet titles = {
  index:    'главная страница',
  about:    'о нас',
  conctacs: 'контакты',
  price:    'наш прайс'
}

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