Intenté este simple cambio desde la semilla y creé los archivos .html correspondientes (por ejemplo, index.html).
//app.set('view engine', 'jade');
app.set('view engine', 'html');
y este archivo se mantuvo igual:
exports.index = function(req, res){
res.render('index');
};
pero mientras corro me sale
500 Error: no se puede encontrar el módulo 'html'
¿Es mi única opción usar 'ejs'? Mi intención era usar HTML simple en conjunción con AngularJS.
Respuestas:
Las respuestas en el otro enlace funcionarán, pero para servir HTML, no hay necesidad de usar un motor de vista, a menos que desee configurar un enrutamiento funky. En cambio, solo use el middleware estático:
fuente
res.render()
que funcione más. En su lugar, coloque sus archivos HTML sin procesarpublic
y deje que el middleware estático se encargue de servir los archivos directamente. Si necesita rutas más elegantes que esta, probablemente podría configurar su propio motor de vista HTML.Para hacer que el motor de render acepte html en lugar de jade, puede seguir los siguientes pasos;
Instale consolidar y swig a su directorio.
agregue las siguientes líneas a su archivo app.js
agregue sus plantillas de vista como .html dentro de la carpeta "vistas". Reinicie su servidor de nodo e inicie la aplicación en el navegador.
Aunque esto generará html sin ningún problema, te recomendaría que uses JADE aprendiéndolo. Jade es un motor de plantillas increíble y aprender esto lo ayudará a lograr un mejor diseño y escalabilidad.
fuente
En tus apps.js solo agrega
Ahora puede usar ejs view engine manteniendo sus archivos de vista como .html
fuente: http://www.makebetterthings.com/node-js/how-to-use-html-with-express-node-js/
Necesita instalar estos dos paquetes:
Y luego importe los paquetes necesarios:
De esta manera, puede guardar sus vistas como .html en lugar de .ejs .
Bastante útil al trabajar con IDE que admiten html pero no reconocen ejs.
fuente
intente esto para la configuración de su servidor
entonces sus funciones de devolución de llamada a rutas se verán así:
fuente
No es necesario un motor de visualización, si desea utilizar angular con un simple archivo html. Aquí se explica cómo hacerlo: en su
route.js
archivo:fuente
Recomiendo usar https://www.npmjs.com/package/express-es6-template-engine - motor de plantillas extremadamente ligero y extremadamente rápido. El nombre es un poco engañoso, ya que también puede funcionar sin expressjs.
Los conceptos básicos necesarios para integrarse
express-es6-template-engine
en su aplicación son bastante simples y bastante sencillos de implementar:index.html
archivo ubicado dentro de su directorio 'vistas':fuente
La respuesta es muy simple. Debe usar app.engine ('html') para representar las páginas * .html. intente esto Debe resolver el problema.
el archivo .html funcionará
fuente
Los archivos HTML se pueden representar utilizando el motor ejs:
Y asegúrese de que sus archivos bajo "/ views" estén nombrados con ".ejs".
Por ejemplo "index.ejs".
fuente
Comente el middleware para html, es decir
En su lugar use:
fuente
html no es un motor de vista, pero ejs ofrece la posibilidad de escribir código html dentro de él
fuente
al servidor de páginas html a través del enrutamiento, he hecho esto.
y renombré mis archivos .html a archivos .hbs: los manillares admiten html simple
fuente
Para hacer que el motor de render acepte html en lugar de jade, puede seguir los siguientes pasos;
Esto debería funcionar
fuente
Prueba esta solución simple, funcionó para mí
fuente
Instalar plantilla ejs
npm install ejs --save
Consulte ejs en app.js
Cree una plantilla ejs en vistas como views / indes.ejs y use ejs tempalte en el enrutador
fuente
Renderizar plantilla html con la ayuda de swig.
fuente
Los archivos HTML no necesitan ser renderizados.
lo que hace un motor de renderizado es convertir un archivo que no es un archivo Html en un archivo Html.
para enviar un archivo HTML, solo haz:
es posible que necesite usar
__dirname+"/index.html"
para que express sepa la ruta exacta.fuente