Jade中的sendFile(';/index.html';)和render(';index';)之间的差异
我是JS的新手。我已经找到了一个答案,但在另一个意义上。我的问题是:与发送行html作为响应相比,Express上的模板Jade有什么区别。我的意思是:为什么我要在Express上使用模板:Jade中的sendFile(';/index.html';)和render(';index';)之间的差异,html,node.js,templates,express,pug,Html,Node.js,Templates,Express,Pug,我是JS的新手。我已经找到了一个答案,但在另一个意义上。我的问题是:与发送行html作为响应相比,Express上的模板Jade有什么区别。我的意思是:为什么我要在Express上使用模板: app.set('view engine', 'jade'); app.get('/', function (request, response) { response.render('index');}); 如果我可以直接发送html文件作为响应: app.get('/', function (r
app.set('view engine', 'jade');
app.get('/', function (request, response) {
response.render('index');});
如果我可以直接发送html文件作为响应:
app.get('/', function (request, response) {
response.set('Content-Type', 'text/html');
response.sendFile('/index.html');});
为什么我要花时间处理渲染和发送Jade文件,而不是直接发送html文件
谢谢你 Jade模板允许您创建动态HTML。(例如,您可以使用Jade中的if语句根据某些逻辑呈现不同的HTML标记)。此外,您还可以将服务器中的值插入模板中(例如,当前登录的用户名)
与静态html文件不同,在静态html文件中,要包含动态内容,您需要使用JavaScript;要访问服务器变量,您需要向服务器发送AJAX请求并解析响应 因为通过动态编译每个请求的Jade视图,您可以使用服务器端值来扩充模板
var jade = require('jade');
var html = jade.render('h1 #{someVar}', { someVar: 'Hi there!' });
console.log(html); // "<h1>Hi there!</h1>"
var jade=require('jade');
var html=jade.render('h1#{someVar}',{someVar:'Hi there!'});
console.log(html);//“你好!”
生成的HTML将根据呈现模板时someVar
的值进行更改。如果您只是发送静态HTML文件,那么您就无法方便地将数据插入到模板中。这就是说,随着Angular和其他前端框架变得如此流行,不再需要在服务器上增加模板
随着单页应用程序的出现,在编译应用程序时提前呈现所有jade模板通常更有意义。大多数人都是用或