передача шаблона в шаблон с параметрами в express-handlebars

150
15 ноября 2018, 22:10

Проблема следующая. шаблон "index" загружается, в переменную body передаю шаблон, но в шаблон не передаются параметры для работы handlebars шаблонизатора. В шаблон main нужно передать переменную name. Как это сделать?

var express = require('express'); 
var exphbs = require('express-handlebars'); 
 
var app = express(); 
 
app.engine('handlebars', exphbs()); 
app.set('view engine', 'handlebars'); 
app.set('views', './public/views'); 
 
app.get('/', function(req, res) { 
  res.render('index', { 
    body: require("./public/views/main.handlebars"), 
    name: "Евгений" 
  }); 
}); 
 
app.listen(3000, function() { 
  console.log('Example app listening on port 3000!'); 
});
 index.handlebars 
 
 
<!DOCTYPE html> 
<html lang="ru"> 
 
<head> 
  <meta charset="UTF-8"> 
  <title>Title</title> 
</head> 
 
<body> 
 
  {{{body}}} 
 
</body> 
 
</html>

main.handlebars

Тестовая страница
<h1>{{name}}</h1>
Answer 1

var express = require('express'); 
var exphbs  = require('express-handlebars'); 
 
var app = express(); 
 
var hbs = exphbs.create({ 
    defaultLayout: 'index', 
    layoutsDir: "./public/views", 
    partialsDir: "./public/views" 
}); 
 
 
app.engine('handlebars', hbs.engine); 
app.set('view engine', 'handlebars'); 
app.set('views', './public/views'); 
 
app.get('/', function (req, res) { 
 
 
    res.render('main', { 
        name: "Евгений" 
    }); 
}); 
 
app.listen(3000, function () { 
    console.log('Example app listening on port 3000!'); 
});
<!DOCTYPE html> 
<html lang="ru"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
</head> 
<body> 
 
    <h1>Установка шаблонизатора</h1> 
 
    {{{body}}} 
</body> 
</html>

В {{{body}}} будет передаваться нужный шаблон, в нашем случае "main".

READ ALSO
Виртуальный метод при композиции

Виртуальный метод при композиции

Объект класса с двумя методами getOuter и getInner оборачивается другим классом, имеющим такой же интерфейс, но используется не наследование а композиция,...

176
Передать данные по нажатию кнопки

Передать данные по нажатию кнопки

Возник интересный вопрос, как мне лучше всего передавать someValue в somefunction, при нажатии кнопки: оформить все это в форму или лучше использовать...

165