node bootstrap node.js express ejs

node.js - bootstrap - ejs ''partial no está definido''



ejs ubuntu (2)

De acuerdo, tengo una página de inicio principalmente estática, pero quería tener vistas parciales para navegación, pie de página ect. Estoy usando ejs y se ve así:

mi controlador: home.js

// Dependencies var express = require(''express''); module.exports = { get: function(req, res) { app.set(''view engine'', ''ejs''); var model = { layout:''home'', }; res.render(''home''); } };

Mi directorio de vistas tiene nav, home y footer all .ejs

Entonces el archivo html real sin texto se vería como sigue.

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" > <title>Tom Jones</title> <!-- CSS --> <link rel="stylesheet" href="/css/home.css" type="text/css" media="screen" > </head> <body> <%- partial(''nav'') %> <!--content part --> <div id="showcontainer"> <section> </section> </div> <div id="maincontainer"> <section> </section> </div> </body> </html>

El problema Cuando alguna vez lo pruebo me encuentro con el error parcial no está definido. Intenté requerir ejs pero no éxito.


Como @Pickels dijo, Parcial se eliminó en 3.x. Sin embargo, la versión más reciente de EJS proporciona un mecanismo para incluir "parciales", llamado "incluir":

https://github.com/visionmedia/ejs#includes

Incluye en relación con la plantilla con la instrucción include, por ejemplo, si tiene "./views/users.ejs" y "./views/user/show.ejs", debe usar <% include user / show%>. Los archivos incluidos se incluyen literalmente en la plantilla, no se realiza IO después de la compilación, por lo que las variables locales están disponibles para estas plantillas incluidas.

Lo siguiente funcionará como un reemplazo para su antigua función partial (). Tendrá que hacer ajustes en otro lugar para admitir Express 3.x por completo, pero en su mayor parte parece funcionar bien (mejor en realidad, menos código y más rendimiento).

<% include nav.ejs %> <!-- replaces your old <%- partial(''nav'') %> -->


Parcial fue eliminado en 3.x. Ahora le corresponde al motor de plantillas proporcionar parciales.