Есть ли способ сделать представление только один раз в 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>), которые нужно обрезать перед добавлением к нему остальных (то же самое с началом второго рендера).

Для меня просто намного проще сохранять включенные в просмотр файлы.

Другие вопросы по тегам