Есть ли способ сделать представление только один раз в ExpressJS?
В настоящее время вот так я настраиваю свое представление на моем server.js при доступе к корневой странице:
app.get('/', function(req, res){
res.render('home.jade');
});
И в доме. Джейд,
include head
include top
include left
body
div.container
p Welcome to the homepage.
Это работает нормально, но проблема в том, что при доступе к другой странице мне придется каждый раз включать head.jade, top.jade и left.jade. Есть ли способ просто включить их только один раз, и менялась ли только часть тела каждый раз, когда я перехожу на другую страницу? Я посмотрел на частичные, но кажется, что эта опция была удалена в Express 3.0+.
1 ответ
Вы можете визуализировать голову, верх и левую сторону:
res.render('static.jade', {}, function(err, html){
// ...
});
При указании обратного вызова ответ не отправляется, и результат находится в html
вар. Затем вы можете сделать то же самое с 'home.jade', объединить две строки результата и ответить
res.send(concatencated_html);
Пожалуйста, имейте в виду, что рендеринг заголовка приведет к полному выводу html (<html>...</html>
), которые нужно обрезать перед добавлением к нему остальных (то же самое с началом второго рендера).
Для меня просто намного проще сохранять включенные в просмотр файлы.