¿Cómo puedo deshacerme de Jade mientras uso Express con Node.JS? Solo quiero usar html simple. En otros artículos, he visto que la gente recomendaba app.register (), que ahora está obsoleto en la última versión.
103
Puedes hacerlo de esta manera:
Instalar ejs:
npm install ejs
Configure su motor de plantillas en app.js como ejs
// app.js
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
Ahora en su archivo de ruta puede asignar variables de plantilla
// ./routes/index.js
exports.index = function(req, res){
res.render('index', { title: 'ejs' });};
Luego puede crear su vista html en el directorio / views.
title
en un archivo html?Jade también acepta entrada HTML.
Simplemente agregue un punto al final de la línea para comenzar a enviar html puro.
Si eso funciona para usted, intente:
PD: no es necesario cerrar HTML, eso lo hace automáticamente Jade.
fuente
A partir de Express 3, simplemente puede usar
response.sendFile
De la referencia oficial de la api express :
Advertencia
res.sendFile
proporciona caché del lado del cliente a través de encabezados de caché http pero no almacena en caché el contenido del archivo en el lado del servidor. El código anterior llegará al disco en cada solicitud .fuente
sendfile
no le permite hacer ninguna plantilla, ya que solo envía bytes desde un archivo. Además, recomendaría no usarlo desendfile
esta manera porque significa que golpeará el disco cada vez que ingrese una solicitud, un gran cuello de botella. Para páginas de alto tráfico, realmente debería hacer un almacenamiento en caché en memoria.En mi opinión, usar algo tan grande como ejs solo para leer archivos html es un poco torpe. Acabo de escribir mi propio motor de plantillas para archivos html que es notablemente simple. El archivo tiene este aspecto:
Llamé al mío htmlEngine, y la forma en que lo usa es simplemente diciendo:
fuente
app.register()
no se ha depreciado, simplemente se le ha cambiado el nombre aapp.engine()
desde que Express 3 cambia la forma en que se manejan los motores de plantilla .Si está buscando un motor de plantillas que le permita usar HTML "simple", le recomiendo doT porque es extremadamente rápido .
Por supuesto, tenga en cuenta que el modelo de vista Express 3 deja la vista en caché para usted (o su motor de plantillas). En un entorno de producción, probablemente desee almacenar en caché sus vistas en la memoria para no realizar E / S de disco en cada solicitud.
fuente
Puede usar EJS con express qué plantillas son HTML pero soportan variables. Aquí hay un buen tutorial sobre cómo usar EJS en express.
http://robdodson.me/blog/2012/05/31/how-to-use-ejs-in-express/
fuente
Para hacer que el motor de renderizado acepte html en lugar de jade, puede seguir los siguientes pasos;
Instale consolidate y swig en 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 renderizará html sin ningún problema, le recomendaría que use JADE aprendiéndolo. Jade es un motor de plantillas increíble y aprender esto te ayudará a lograr un mejor diseño y escalabilidad.
fuente
Primero verifique la versión de compatibilidad del motor de plantilla usando la línea de abajo
entonces no tiene que usar ninguna vista de la lista, seleccione ninguna vista
ahora puede usar todos sus html, css, js e imágenes en la carpeta pública.
fuente
Bueno, parece que quieres servir archivos estáticos. Y hay una página para eso http://expressjs.com/en/starter/static-files.html
Es extraño que nadie se vincule a la documentación.
fuente
Teniendo en cuenta que ya tienes tus rutas definidas o sabes cómo hacerlo.
NOTA: esta ruta debe colocarse después de todas las demás ya que * acepta todo.
fuente
dado que Jade admite HTML, si solo desea tener .html ext, puede hacer esto
luego simplemente cambia el archivo en las vistas de jade a html.
fuente
También puede incluir directamente su archivo html en su archivo jade
Respuesta original: Generador Express sin Jade
fuente
Si desea usar html simple en nodeJS, sin usar jade .. o lo que sea:
Personalmente estoy bien con eso.
La ventaja es la sencillez a la hora de controlar. Puedes usar algunos trucos, como
'<p>' + (name || '') + '</p>'
ternario, etc.Si desea un código sangrado en el navegador, puede hacer lo siguiente:
y use \ t o \ n a voluntad. Pero prefiero sin, además es más rápido.
fuente
fs
módulo.fs.readFile(htmlfile, 'utf8', function (err, file) {