Nodejs(七)

来源:互联网 发布:装修 知乎 编辑:程序博客网 时间:2024/06/15 08:24

什么是模板引擎
模板引擎是从一个页面模板根据一定的规则生成HTML的工具,PHP首发,随后出现的ASP、JSP都沿用这个模式,即建立一个HTML模板页,插入可执行代码,运行时动态生成HTML。
缺点:页面功能逻辑于页面布局样式耦合,网站规模大了之后难以维护。语法复杂,对于非技术网页设计者来说门槛较高,难以学习。功能过于全面,页面设计者可以在页面编程,不利于功能划分,也是模板解析效率降低。
后来MVC诞生,模板引擎被包含在服务器端,控制器得到用户请求后,从模型获取数据,调用模板引擎,模板引擎以数据和页面模板为输入,生成HTML,然后返回给控制器。

使用模板引擎
基于javascript的模板引擎还有很多实现,我们推荐使用ejs,它学习起来更简单,于express集成良好,它的标准是javascript实现。它不仅可以运行在服务端,还可以运行在浏览器中。服务器运行ejs,可以减少对浏览器的依赖,而且更加符合传统架构的习惯。
app.set(“views”, __dirname + “/views”),指定页面模板的存放目录
app.set(“view engine”, “ejs”)使用ejs模板引擎
resp.render(‘index’, {title: ‘pcar’});调用模板引擎,接受两个参数,参数一:模板的名称,即views目录下的模板文件名,不包括扩展名;参数二:传递给模板的数据。
ejs标签:<% code %> javascript代码
<%= code %>显示替换过HTML特殊字符的内容
<%-code%>显示原始HTML内容

页面布局
layout.ejs是一个模板布局模板,它描述整个页面的框架结构,默认情况下每个单独的页面都继承自这个框架:替换掉<%-body%>。
一般为了保持整个网站的一致风格,HTML的head部分以及底部的大量内容是重复的,因此我们可以把它们放到layout.ejs中,然后把body填充成自定义部分即可。如果想关闭它使用app.use(‘view options’, {layout: false});
如果网站不只需要一种页面布局,例如后台和前台,那么我么可以在调用视图模板的时候指定上layout(ejs的写法),ejs的实现:resp.render(‘userlist’, {title: ‘后台管理’, layout: ‘admin’});会在后台寻找admin.ejs的布局模板。

0 0
原创粉丝点击