Как я могу получить Express для вывода красиво отформатированного HTML?
при использовании Express для узла.js, я заметил, что он выводит HTML-код без каких-либо символов новой строки или вкладок. Хотя это может быть более эффективным для загрузки, это не очень читабельно во время разработки.
Как я могу получить экспресс для вывода красиво отформатированного HTML?
9 ответов:
в основном
app.jsили то, что находится на его месте:Экспресс-4.x
if (app.get('env') === 'development') { app.locals.pretty = true; }Экспресс-3.x
app.configure('development', function(){ app.use(express.errorHandler()); app.locals.pretty = true; });Экспресс-2.x
app.configure('development', function(){ app.use(express.errorHandler()); app.set('view options', { pretty: true }); });Я положил красивый отпечаток в
developmentпотому что вы хотите больше эффективности с "уродливым" вproduction. Обязательно установите переменную окруженияNODE_ENV=productionпри развертывании в рабочей среде. Это можно сделать с помощьюshскрипт, который вы используете в 'script' полеpackage.jsonи выполняется для начала.Экспресс-3 изменить вот так:
настройка "параметры просмотра" Больше не требуется, приложение.locals-это локальные переменные, объединенные с res.render (), поэтому [app.местный житель.довольно = истина такая же, как проезжают РЭС.визуализация(вид, { красавица: правда }).
в самом нефрите есть" симпатичный " вариант:
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() );...получает вам это:
<!DOCTYPE html> <html> <body> <div id="foo">I am a foo div! </div> </body> </html>Я не кажусь очень сложным, но для того, что я после -- возможность на самом деле отлаживать HTML мои представления производят-это просто прекрасно.
в экспресс 4.x, добавьте это в свое приложение.js:
if (app.get('env') === 'development') { app.locals.pretty = true; }
Если вы используете консоль для компиляции, то можно использовать что-то вроде этого:
$ jade views/ --out html --pretty
вам действительно нужен красиво отформатированный html? Даже если вы пытаетесь вывести что-то, что выглядит хорошо в одном редакторе, это может выглядеть странно в другом. Конечно, я не знаю, для чего вам нужен html, но я бы попробовал использовать инструменты разработки chrome или firebug для Firefox. Эти инструменты дают вам хорошее представление о DOM вместо html.
Если вам действительно нужен хорошо отформатированный html, попробуйте использовать EJS вместо jade. Это означало бы, что вам придется отформатировать html самостоятельно хотя.
можно использовать порядок
возьмите, например, этот нефритовый файл:
фу.Джейд
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теперь вы можете обрабатывать его с узел testjade.Джей фу.нефрит > выход.HTML-код:
testjade.js
var jade = require('jade'); var jadeFile = process.argv[2]; jade.renderFile(__dirname + '/' + jadeFile, options, function(err, html){ console.log(html); });даст вам s.th например:
выход.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затем запуск его через аккуратный с аккуратно -м выходе.HTML-код результатом будет:
выход.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>
отталкиваясь от предложения Оливера, вот быстрый и грязный способ просмотра украшенного html
1) Скачать порядок
2) добавить это к вашему .bashrc
function tidyme() { curl | tidy -indent -quiet -output tidy.html ; open -a 'google chrome' tidy.html }3) run
$ tidyme localhost:3000/pathкоманда open работает только на компьютерах Mac. надеюсь, это поможет!
в экспресс 4.x, добавьте это в свое приложение.js:
app.locals.pretty = app.get('env') === 'development';
Comments