2012-06-08 5 views

ответ

3

Express.js оставляет это до движка шаблона, если я правильно помню. Поэтому, если ejs не поддерживает макеты, вам не повезло.

+0

Он предположительно поддерживает макеты в соответствии с документацией экспресс, но мне еще нужно, чтобы он работал правильно. –

+0

3.x удаленные макеты. Руководства на сайте - 2.x. – Pickels

+0

Вы можете использовать ejs-locals для определения макета. – aredridel

5

Вы можете сделать это с этим модулем ...

https://github.com/aseemk/express-blocks

layout.ejs

<html> 
    <body> 
     <% include nav %> 
     <h1><%= title %></h1> 
     <%- body %> 
    </body> 
</html> 

login.ejs

<% layout('layout') -%> 
<form>...</form> 

nav.ejs

<nav> 
    <% if (session.logged_in) { %> 
    <a href="/account">account</a> 
    <a href="/logout">logout</a> 
    <% } else { %> 
    <a href="/signup">signup</a> 
    <a href="/login">login</a> 
    <% } %> 
    <a href="/">home</a> 
</nav> 

Я использовал экспрессивные части, но я нашел экспресс-блоки, чтобы быть лучше для ejs и выразить 3.x. использование партикулов было болью, чтобы передавать данные в любое время. С <% include whatever %> данные уже доступны.

В файле маршрутов, вы можете сделать так:

exports.login.get = function(req, res){ 
    res.locals.session = req.session; 
    res.render('login', { title: 'Login to your account' }); 
}; 
9

Собственно после того, как Экспресс 3.X не поддерживает layout.ejs, если вы хотите использовать макет, следующие шаги должны сделать самостоятельно :

  1. добавить зависимость "экспресс-партиалы": "*" в вас package.json файл
 
    "dependencies": { 
     "express": "3.1.0", 
     "ejs": "*", 
     "express-partials": "*" 
    } 
  1. выполнить npm install установить последнюю версию express-partials
  2. требуют express-partials в вашем app.js
    var partials = require('express-partials');
  3. кода надстройкой app.use(partials()); под app.set('view engine', 'ejs'); в app.js файле

после этого, вы можете создать вам layout.ejs и добавьте <%- body%> в ваш файл layout.ejs, и этого достаточно и wo хорошо.

+0

Хороший мужчина ........ –

Смежные вопросы