visual studio proyecto node ejemplos crear node.js express pug pretty-print

node.js - studio - node js ejemplos



¿Cómo puedo obtener Express para producir un buen formato de HTML? (9)

¿Realmente necesitas html con buen formato? Incluso si intentas producir algo que se vea bien en un editor, puede parecer extraño en otro. De acuerdo, no sé para qué necesitas el html, pero trataría de usar las herramientas de desarrollo de Chrome o Firebug para Firefox. Esas herramientas le dan una buena vista del DOM en lugar del html.

Si realmente necesitas un html bien formateado, prueba usar EJS en lugar de jade. Sin embargo, eso significa que tendrías que formatear el html.

Cuando uso Express for Node.js, noté que genera el código HTML sin caracteres o pestañas de nueva línea. Aunque puede ser más eficiente para descargar, no es muy legible durante el desarrollo.

¿Cómo puedo obtener Express para producir un buen formato de HTML?


En express 4.x, agrégalo a tu app.js:

app.locals.pretty = app.get(''env'') === ''development'';


En express 4.x, agrégalo a tu app.js:

if (app.get(''env'') === ''development'') { app.locals.pretty = true; }


Hay una opción "bonita" en Jade:

var jade = require("jade"); var jade_string = [ "!!! 5", "html", " body", " #foo I am a foo div!" ].join("/n"); var fn = jade.compile(jade_string, { pretty: true }); console.log( fn() );

... te consigue esto:

<!DOCTYPE html> <html> <body> <div id="foo">I am a foo div! </div> </body> </html>

No parece ser muy sofisticado, pero por lo que busco: la capacidad de depurar realmente el HTML que producen mis vistas, está bien.


Para "formato bonito" salida html en Jade / Express:

app.set(''view options'', { pretty: true });


Si está utilizando la consola para compilar, puede usar algo como esto:

$ jade views/ --out html --pretty


basándose en la sugerencia de Oliver, aquí está una manera rápida y sucia de ver html embellecido

1) descargar tidy

2) agregue esto a su .bashrc

function tidyme() { curl $1 | tidy -indent -quiet -output tidy.html ; open -a ''google chrome'' tidy.html }

3) ejecutar

$ tidyme localhost:3000/path

el comando abrir solo funciona en Mac. ¡Espero que ayude!


puedes usar tidy

tomar por ejemplo este archivo de jade:

foo.jade

h1 MyTitle p a(class=''button'', href=''/users/'') show users table thead tr th Name th Email tbody - var items = [{name:''Foo'',email:''foo@bar''}, {name:''Bar'',email:''bar@bar''}] - each item in items tr td= item.name td= item.email

ahora puede procesarlo con el nodo testjade.js foo.jade> output.html :

testjade.js

var jade = require(''jade''); var jadeFile = process.argv[2]; jade.renderFile(__dirname + ''/'' + jadeFile, options, function(err, html){ console.log(html); });

le dará a usted me gusta:

output.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>My Title</title><link rel="stylesheet" href="/stylesheets/style.css"/><script type="text/javascript" src="../js/jquery-1.4.4.min.js"></script></head><body><div id="main"><div ><h1>MyTitle</h1><p><a href="/users/" class="button">show users</a></p><table><thead><tr><th>Name</th><th>Email</th></tr></thead><tbody><tr><td>Foo</td><td>foo@bar</td></tr><tr><td>Bar</td><td>bar@bar</td></tr></tbody></table></div></div></body></html

luego ejecutarlo ordenado con tidy -m output.html resultará en:

output.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content= "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org" /> <title>My Title</title> <link rel="stylesheet" href="/stylesheets/style.css" type= "text/css" /> <script type="text/javascript" src="../js/jquery-1.4.4.min.js"> </script> </head> <body> <div id="main"> <div> <h1>MyTitle</h1> <p><a href="/users/" class="button">show users</a></p> <table> <thead> <tr> <th>Name</th> <th>Email</th> </tr> </thead> <tbody> <tr> <td>Foo</td> <td>foo@bar</td> </tr> <tr> <td>Bar</td> <td>bar@bar</td> </tr> </tbody> </table> </div> </div> </body> </html>


En tu app.js principal o lo que está en su lugar:

Express 4.x

if (app.get(''env'') === ''development'') { app.locals.pretty = true; }

Express 3.x

app.configure(''development'', function(){ app.use(express.errorHandler()); app.locals.pretty = true; });

Express 2.x

app.configure(''development'', function(){ app.use(express.errorHandler()); app.set(''view options'', { pretty: true }); });

Puse la bonita impresión en development porque querrás más eficiencia con la production ''fea''. Asegúrese de establecer la variable de entorno NODE_ENV=production cuando despliega en producción. Esto se puede hacer con un script sh que se utiliza en el campo ''script'' de package.json y se ejecuta para comenzar.

Express 3 changed esto porque:

La configuración "ver opciones" ya no es necesaria, app.locals son las variables locales fusionadas con res.render (), por lo que [app.locals.pretty = true es lo mismo que pasar res.render (view, {pretty : cierto }).