tutorial tiempo real nodejs node mega español ejemplos con aplicaciones node.js express ejs

node.js - tiempo - nodejs mongodb



Diseños en Express 3 y EJS (3)

En la versión 3 de Express se eliminaron algunas características:

the concept of a "layout" (template engine specific now) partial() (template engine specific)

Registro de cambios: https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x

Se puede cambiar el valor partial() para la característica propia de EJS denominada include , pero ¿cuál es la alternativa para los diseños?


Luché con esto también. Entonces puse un proyecto github con un ejemplo para ejs y dustjs.

https://github.com/chovy/express-template-demo

No estoy seguro de la diferencia entre una inclusión parcial y una inclusión, no es necesario que pase los datos explícitamente a una inclusión. No estoy seguro de por qué querrías un parcial.

Pero para un diseño, solo especificas un bloque como este:

//layout.ejs <html> <%- body %> </html> //page1.ejs <% layout(''layout'') -%> This is loaded from page 1 and overrides <%- body %> in the layout.ejs.

Si alguien quiere agregar más ejemplos, simplemente envíe una solicitud de extracción.


Parece que desde Express 3, la función de diseño está delegada a la responsabilidad de los motores de plantillas. Puede usar ejs-locals ( https://github.com/RandomEtc/ejs-locals ) para el diseño.

Instalar ejs-locals

npm install ejs-locals --save

Use ejs-locals como su motor de aplicaciones en app.js

var express = require(''express''); var engine = require(''ejs-locals''); ... app.engine(''ejs'', engine); app.set(''view engine'', ''ejs'');

Ahora puedes usar el diseño

layout.ejs <body> <%- body %> </body> index.ejs <% layout(''layout'') -%> <div class="container"> <div class="jumbotron"> ...

Otra opción es usar Express-partials ( https://github.com/publicclass/express-partials ). Los dos hacen lo mismo, así que es tu elección.


Puede imitar los diseños de EJS en Express 2.x con la opción "incluir". Vea mi respuesta aquí:

https://.com/a/12477536/446681