Как создать общий массив в handlebars

Подскажите пожалуйста как использовать правильно общий объект helpers. Имеется код.

app.engine('hbs', hbs({

  layoutsDir: 'handlebars/layouts',//чёт не работает. если встретит раньше index то отобразит его
  defaultLayout: 'index',
  extname: 'hbs',

  helpers: {// глобальная ветка
    link: ['Главная','Контакты','Информация','Доставка','Акции'],
  }    
}) )

app.set('views', './handlebars')//путь папки где лежат подключаемые шаблоны
app.set('view engine', 'hbs')

app.get('/', (req, res) => {
  res.render('home', {
     arr: [33, 45,655],
     title: 'Главная',
     header: 'просто текст',
     helpers: {}//локальное поле
  })
})

app.get('/lk(.html)?', (req, res) => {
  console.dir(req.url);
  res.render('lk', {

     arr: [453,75,23],
     title: 'Личный кабинет',
     header: 'просто текст',
     helpers: {}
  })
})

Это мастер-страница(Layout)

 <body>

    {{{body}}} 

    {{>navigation}}

 </body>

Это навигация 'частичное представление'

 <div class="container">
    <nav class="navigation">

        {{#each helpers.link}}
          <p>{{{link}}}</p> //тут я тупо проверяю зашёл ли я в цикл.
          <a href="#">{{{this}}}</a>

        {{/each}}

    </nav>
 </div>

Вообщем смысл такой: какой бы я запрос не получил, подключая разные представления, я должен отобразить навигацию на все страницах. Можно конечно под каждым запросом дублировать массив хоть вместо Arr или прям в helpers засосывать одно и то же. Я не нашёл подобного решения. устанавливал const hbs = require('express-handlebars'). Не совсем понял зачем используют просто hbs если есть express-handlebars.


Ответы (0 шт):