我正在學習節點,並從最簡單的表達和使用res.render('view',{data:data})
呈現視圖時,它只是一個模板引擎,如玉,適合視圖。我可以不使用正常的HTML嗎?我只需要使用快速渲染的模板語言?
1
A
回答
1
你可以,但這是我在學習Node時碰到的一個問題。如果您不想使用模板引擎,則仍然可以讓Node以靜態方式吐出HTML文件的內容。例如(非常基本的EXAMLE):
var base = '/path/to/your/public_html',
fs = require('fs'),
http = require('http'),
sys = requrie('sys');
http.createServer(function (req,res) {
path = base + req.url;
console.log(path);
path.exists(path, function(exists) {
if(!exists) {
res.writeHead(404);
res.write('Bad request: 404\n');
res.end();
} else {
res.setHeader('Content-Type','text/html');
res.statusCode = 200;
var file = fs.createReadStream(path);
file.on("open",function() {
file.pipe(res);
});
file.on("error",function(err) {
console.log(err);
});
}
});
}).listen(80);
console.log('server on tcp/80');
0
有關節點的偉大的事情是,它迫使你從邏輯模板分離(到一定程度,可以擠大量的邏輯爲模板反正)。
我不喜歡Jade並使用EJS,直到事實證明客戶端EJS與服務器端不同,並且您無法真正在瀏覽器中重新使用模板(正如您在某些時候肯定希望的那樣,你開始在瀏覽器中渲染頁面)。您可以重新使用簡單的EJS模板,但不能重複使用帶有部分的模板(因爲大部分模板都是)。
經過大量的搜索和反覆試驗,我最終使用了非常快速(實際上速度最快)的doT模板,輕量級(只有140行JavaScript)可以輕鬆地集成到Express(按照合併模式 - 你不能直接與doT合併),可以在瀏覽器中使用(加載部分的函數必須不同,但它很容易)。
doT似乎有我在其他模板引擎中沒有看到的功能,它有一個非常優雅的語法,它最接近handlebars(我的最愛),但仍然允許正常的JavaScript內部(這就是爲什麼我在第一個選擇EJS地點)。
相關問題
- 1. 從字符串快速渲染模板
- 2. Ember只渲染根模板
- 3. 快速渲染網頁源代碼與Java語言
- 4. 我被困在使用快遞和車把的渲染模板
- 5. 如何使用Liquid模板語言在佈局中渲染模板?
- 6. 需要更好的模板語言
- 7. 玩!渲染我的模板
- 8. Node.js的快速渲染
- 9. 用Rabl渲染html只需要
- 10. 使用調色板快速將字節渲染到畫布
- 11. 服務器端渲染與痛飲模板,反應,快速
- 12. Django的 - 切換語言設置爲模板渲染
- 13. 有沒有json渲染的模板語言?
- 14. C#快速像素渲染
- 15. 模板渲染
- 16. 特快JS不渲染玉模板
- 17. 使用swig模板渲染文件而不使用快遞
- 18. 使用HBS條帶快速查看渲染(消耗?)Handlebars客戶端模板
- 19. Grails的「渲染」渲染模板
- 20. 渲染與給定模板製品中的速度模板
- 21. 我需要快速幫助! :'(
- 22. 只渲染模板包裝Backbone.Marionette.CompositeView
- 23. 使用jQuery模板並渲染渲染後的事件
- 24. 用jQuery快速渲染大型表格
- 25. Django模板渲染
- 26. Rails渲染模板
- 27. Angular2渲染模板
- 28. Ember.js模板渲染
- 29. PHP - 渲染模板
- 30. 龍捲風:使用複雜的模板渲染只有template.Loader
這取決於視圖引擎。 Jade允許使用[文字HTML](https://github.com/visionmedia/jade#a6-10)。雖然,如果你的意思是*只是* HTML,那麼[更好的選擇](http://www.senchalabs.org/connect/static.html)。而且,如果您的意思是「*主要是HTML *」 - 例如'
你總是可以'res.write()'HTML。 – 2013-02-25 08:49:30