如何让Express输出格式良好的HTML?

Ste*_*hen 164 pretty-print node.js express pug

当使用Express for Node.js时,我注意到它输出的HTML代码没有任何换行符或标签.虽然下载速度可能更高,但在开发过程中它的可读性并不高.

如何让Express输出格式良好的HTML?

Ehe*_*Tov 311

在你的主要app.js或它的位置:

快递4.x

if (app.get('env') === 'development') {
  app.locals.pretty = true;
}
Run Code Online (Sandbox Code Playgroud)

快递3.x

app.configure('development', function(){
  app.use(express.errorHandler());
  app.locals.pretty = true;
});
Run Code Online (Sandbox Code Playgroud)

快递2.x

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

我把漂亮的印花放进去,development因为你会想要更高效的"丑陋" production.NODE_ENV=production在生产中部署时,请确保设置环境变量.这可以通过sh您在"脚本"字段中使用package.json并执行以启动的脚本来完成.

Express 3 改变了这一点,因为:

不再需要"视图选项"设置,app.locals是与res.render()合并的局部变量,因此[app.locals.pretty = true与传递res.render相同(视图,{漂亮) :true}).

  • @AntonioSalvati试试`app.locals.pretty = true` (3认同)
  • 如何在Express 4.x中做到这一点? (2认同)

Jon*_*ian 50

要在Jade/Express中"漂亮地格式化"html输出:

app.set('view options', { pretty: true });
Run Code Online (Sandbox Code Playgroud)

  • 过时了.Express 3的工作方式略有不同,请参阅EhevuTov撰写的文章. (34认同)
  • **很棒的解决方案!**我希望它也能匹配布局/页面之间的缩进级别. (3认同)

Kev*_*ost 7

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() );
Run Code Online (Sandbox Code Playgroud)

......给你这个:

<!DOCTYPE html>
<html>
  <body>
    <div id="foo">I am a foo div!
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我似乎并不是非常复杂,但对于我所追求的 - 实际调试我的视图产生的HTML的能力 - 它很好.

  • 如果您正在调试HTML,那么您总是可以使用Webkit或Firebug检查器"检查"HTML.这总是生成一个完美格式化的DOM树. (3认同)

ala*_*ive 7

在express 4.x中,将其添加到app.js:

if (app.get('env') === 'development') {
  app.locals.pretty = true;
}
Run Code Online (Sandbox Code Playgroud)