我正在学习节点,并从最简单的表达和使用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. 快速渲染网页源代码与Java语言
- 3. 我被困在使用快递和车把的渲染模板
- 4. 如何使用Liquid模板语言在布局中渲染模板?
- 5. 玩!渲染我的模板
- 6. 使用调色板快速将字节渲染到画布
- 7. 服务器端渲染与痛饮模板,反应,快速
- 8. Django的 - 切换语言设置为模板渲染
- 9. urlrewritefilter速度模板渲染问题
- 10. 使用HBS条带快速查看渲染(消耗?)Handlebars客户端模板
- 11. Grails的“渲染”渲染模板
- 12. 渲染与给定模板制品中的速度模板
- 13. 我需要快速帮助! :'(
- 14. 使用jQuery模板并渲染渲染后的事件
- 15. Angular2渲染模板
- 16. Rails渲染模板
- 17. Ember.js模板渲染
- 18. 最快的Java网页模板语言
- 19. 我不能渲染我的模板css使用ejs
- 20. iOS上的快速软件渲染
- 21. 流星:模板内的渲染模板
- 22. 的NodeJS渲染EJS模板
- 23. Django的appliation模板渲染
- 24. Django的:模板渲染
- 25. 不再需要快速导入语句
- 26. PHP select语句需要快速更正
- 27. 为什么不快速渲染我的React应用程序?
- 28. 速度模板语言动态变量
- 29. 如何在快速渲染视图中调用节点模块?
- 30. 语言C - 快速排序
这取决于视图引擎。 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