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的布局模板。
- Nodejs(七)
- nodejs代码段(七)
- 初窥nodejs(七) ——cookie$session
- nodejs系列之七——nodejs与mongoDB
- nodejs系列之七——nodejs与mongoDB
- 一起读nodejs(七)----事件(Events)
- NodeJS学习(一) NodeJS基础
- nodejs学习总结(二)-nodejs 是什么
- NodeJS入门(一)
- nodejs学习(一)
- nodejs学习(二)
- nodejs mongodb (2)
- http服务器(nodejs)
- NodeJs学习(一)
- nodejs篇(一)
- nodejs(一)
- nodejs(二)
- NodeJs入门(一)
- 一个合格的程序员应该读过哪些书
- SICP ex 1-27
- plsql查询数据显示为乱码解决方法
- PHP自学no00006数据类型字符串型之转义符
- 69道Spring面试题和答案
- Nodejs(七)
- LeetCode 220. Contains Duplicate III(检查重复)
- 69道Spring面试题和答案
- 1012. The Best Rank (25)
- LeetCode 99. Recover Binary Search Tree
- PAT
- Object 监视器方法分解成截然不同的对象, 以便通过将这些对象与任意Lock 实现组合使用,为每个对象提供多个等待 set
- aggregate对有相同元素的列进行共同的变化
- hdu-2089 不要62[数位dp]