簡體   English   中英

Node.js 沒有模板引擎

[英]Node.js without a template engine

我是 Node.js 的新手,正在努力學習。 據我了解,使用模板引擎(例如 Jade)是很常見的,即使對於 CSS(例如 Stylus)也是如此。 老實說,我看到的所有教程都涉及到模板引擎的布局。

問題是我不想使用模板引擎,因為我認為它不必要地復雜。

是指向 Node 樣板的鏈接(不幸的是,由於某種原因它不起作用),但選項 1 不應使用任何模板引擎進行布局。

那么,將 Node.js 和 Mongodb 與“普通”HTML(5) 結合起來的最簡單方法是什么? 例如,是否可以將 HMTL5 Boilerplate 與 Node 一起使用?

如果您使用的是 static html,那么您不需要在服務器端進行模板化。 您可以使用Express/Connect static 中間件輕松地為您的 html 文件提供服務,例如:

app.use(express.static(__dirname + '/public'));

然后將index.html放入您的公用文件夾。

此外,我認為您可以將整個 h5bp 復制並粘貼到您的公共文件夾中,它應該可以工作。

這是我對此的看法。

如果您只提供static html,很明顯您不需要任何模板引擎,因為您可以在響應中緩沖 html,或者使用Connect static 中間件。

然而,當您必須處理動態內容時,事情就會變得有趣起來。

這是模板引擎擅長的地方,因為它們提供了將您的數據與 html 集成的方法。如果您要替換模板引擎,您需要一個可以執行 HTML 和 DOM 操作的庫。 我可以想到兩種選擇:

  • jsdom以及基於它構建的庫(例如fill.js )。
    使用 jsdom,您可以使用服務器端 jQuery 來構建您的視圖,甚至是YUI
    但是它有一些缺點:
    • 又慢又麻煩
    • 在 Windows 上安裝很痛苦,因為它依賴於本機模塊
    • 我無法讓它解析 html 片段或不完整的 html(也許有人知道解決這個問題的方法)

  • 第二種選擇是使用一些輕量級庫來處理 html,但沒有完整的 DOM。 到目前為止,我發現了兩個擅長於此的庫:
    • cheerio - 一個依賴於 jQuery 類選擇器的小型庫
    • plates - 一個將數據綁定到標記的庫

在我看來,兩者都非常簡潔,並且是擺脫模板的良好起點:)
可能還有其他我不知道的,但你明白了。

使用 express,您只需在響應中發送 html5:

app.get('/', function(req, res){
  res.send('<header>Hello World</header>');
});

但是,我會說在大多數情況下模板引擎不會增加復雜性。 如果您要呈現動態內容,關注點分離會使事情變得更簡單。

第一次回答我自己的問題。 我只想分享一下,我找到了一個從 html 到 jade(模板引擎)的轉換器。 這絕對是一件好事,至少對我來說,它消除了很多復雜性,即使它仍然涉及模板引擎。

http://html2jade.aaron-powell.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM