Передача массива объектов в партиалы express-handlebars не работает должным образом, вместо этого возвращается undefined - PullRequest
0 голосов
/ 16 апреля 2019

Ну, я только начал с узла + экспресса и экспресс-руля для проекта.Я хочу передать данные списка навигации в мой частичный.Чтобы передать данные навигационного массива, я использую экземпляр express-handlebars.

import { PORT, navLinks } from './config';
import routes from './routes';
import express from 'express';
import exphbs from 'express-handlebars';

const app = express();

app.use('/', routes);

app.use(express.static(__dirname + '/public'));
app.engine('.hbs', exphbs({
  defaultLayout: 'default', 
  extname: '.hbs',
  helpers: {
    // This does not work. if I log using below method
    navLinks,
    // This method is working if any static value is passed inside partail
    log: d => console.log(d)
  }
}));

app.set('view engine', '.hbs');

app.listen(PORT, () => {
  console.log(`App is running on PORT: ${PORT}`)
});

Объект navLinks будет успешно напечатан, если я передам res.render ().

import { navLinks } from '../config';
export default function(req, res) {
  return {
    renderDashboard(){
      return res.render('dashboard', {
        name: 'Fazil Amir',
        title: 'Welcome User',
        navLinks
      })
    }

  }
}

Приведенный выше подход работает нормально, но мне просто не нравится каждый раз передавать один и тот же объект.

...