tag script nodejs example node.js ejs

node.js - script - ejs<%



Node.js-EJS-incluyendo un parcial (5)

Estoy tratando de usar el procesador de Javascript incorporado para el nodo: https://github.com/visionmedia/ejs

Me gustaría saber cómo puedo incluir otro archivo de vista (parcial) dentro de un archivo de vista .ejs.


Con Express 3.0:

<%- include myview.ejs %>

la ruta es relativa del llamante que incluye el archivo, no del directorio de vistas establecido con app.set("views", "path/to/views") .

EJS incluye


EJS por sí mismo actualmente no permite ver parciales. Expreso hace


En Express 4.x usé lo siguiente para cargar ejs :

var path = require(''path''); // Set the default templating engine to ejs app.set(''view engine'', ''ejs''); app.set(''views'', path.join(__dirname, ''views'')); // The views/index.ejs exists in the app directory app.get(''/hello'', function (req, res) { res.render(''index'', {title: ''title''}); });

Entonces solo necesitas dos archivos para que funcione - views/index.ejs :

<%- include partials/navigation.ejs %>

Y las views/partials/navigation.ejs :

<ul><li class="active">...</li>...</ul>

También puedes decirle a Express que use ejs para plantillas html:

var path = require(''path''); var EJS = require(''ejs''); app.engine(''html'', EJS.renderFile); // Set the default templating engine to ejs app.set(''view engine'', ''ejs''); app.set(''views'', path.join(__dirname, ''views'')); // The views/index.html exists in the app directory app.get(''/hello'', function (req, res) { res.render(''index.html'', {title: ''title''}); });

Finalmente también puedes usar el módulo de diseño de ejs :

var EJSLayout = require(''express-ejs-layouts''); app.use(EJSLayout);

Esto usará views/layout.ejs como tu diseño.


Express 3.x ya no soporta parcial. De acuerdo con la publicación de ejs ''parcial no está definido'' , puede usar la palabra clave "include" en EJS para reemplazar la funcionalidad parcial eliminada.


A partir de Express 4.x

app.js

// above is all your node requires // view engine setup app.set(''views'', path.join(__dirname, ''views'')); <-- ./views has all your .ejs files app.set(''view engine'', ''ejs'');

error.ejs

<!-- because ejs knows your root directory for views, you can navigate to the ./base directory and select the header.ejs file and include it --> <% include ./base/header %> <h1> Other mark up here </h1> <% include ./base/footer %>