node.js 模板引ejs。 
搜了一把推荐用ejs的最多。 
速度比对:http://www.cnblogs.com/fengmk2/archive/2011/04/28/2031971.html

ejs速度不是最快的,推荐最多大概是因为其简单的语法结构。主要通过<% %><%=%>来嵌套代码。比如符合阅读逻辑,同时也省去不少学习语法的成本。 
另有一些自定义的方法:如link_to(name, url),img_tag(url)等。 
还可以支持json。 
=========== 
ejs的特性: 
    1、缓存功能,能够缓存已经解析好的html模版; 
    2、<% code %>用于执行其中javascript代码; 
    3、<%= code %>会对code进行html转义; 
    4、<%- code %>将不会进行转义; 
    5、支持自定义标签,比如'<%'可以使用'{{','%>'用'}}'代替; 
    6、提供一些辅助函数,用于模版中使用 
    7、利用<%- include filename %>加载其他页面模版; 
    
    使用示例 
    1、ejs.compile(str, options); 将返回内部解析好的Function函数 
    2、ejs.render(str, options); 返回经过解析的字符串

其中options的一些参数为: 
    1、cache:是否缓存解析后的模版,需要filename作为key; 
    2、filename:模版文件名; 
    3、scope:complile后的Function执行所在的上下文环境; 
    4、debug:标识是否是debeg状态,debug为true则会输出生成的Function内容; 
    5、compileDebug:标识是否是编译debug,为true则会生成解析过程中的跟踪信息,用于调试; 
    6、client,标识是否用于浏览器客户端运行,为true则返回解析后的可以单独运行的Function函数; 
    7、open,代码开头标记,默认为'<%'; 
    8、close,代码结束标记,默认为'%>'; 
    9、其他的一些用于解析模版时提供的变量。 
    在express中使用时,options参数将由response.render进行传入,其中包含了一些express中的设置,以及用户提供的变量值。

此外ejs还提供了一些辅助函数,用于代替使用javascript代码,使得更加方便的操纵数据。 
    1、first,返回数组的第一个元素; 
    2、last,返回数组的最后一个元素; 
    3、capitalize,返回首字母大写的字符串; 
    4、downcase,返回字符串的小写; 
    5、upcase,返回字符串的大写; 
    6、sort,排序(Object.create(obj).sort()?); 
    7、sort_by:'prop',按照指定的prop属性进行升序排序; 
    8、size,返回长度,即length属性,不一定非是数组才行; 
    9、plus:n,加上n,将转化为Number进行运算; 
    10、minus:n,减去n,将转化为Number进行运算; 
    11、times:n,乘以n,将转化为Number进行运算; 
    12、divided_by:n,除以n,将转化为Number进行运算; 
    13、join:'val',将数组用'val'最为分隔符,进行合并成一个字符串; 
    14、truncate:n,截取前n个字符,超过长度时,将返回一个副本 
    15、truncate_words:n,取得字符串中的前n个word,word以空格进行分割; 
    16、replace:pattern,substitution,字符串替换,substitution不提供将删除匹配的子串; 
    17、prepend:val,如果操作数为数组,则进行合并;为字符串则添加val在前面; 
    18、append:val,如果操作数为数组,则进行合并;为字符串则添加val在后面; 
    19、map:'prop',返回对象数组中属性为prop的值组成的数组; 
    20、reverse,翻转数组或字符串; 
    21、get:'prop',取得属性为'prop'的值; 
    22、json,转化为json格式字符串

===================== 
模板示例:

  1. <!-- templates/supplies.ejs -->
  2. <h1>Supplies</h1>
  3. <ul>
  4. <% for(var i=0; i<supplies.length; i++) {%>
  5. <li><%= supplies[i] %></li>
  6. <% } %>
  7. </ul>

关于ejs的使用可参照: 
http://node-js.diandian.com/post/2012-07-03/40029704518 
http://blog.csdn.net/lisownjay/article/details/16952723 
http://www.csser.com/board/4fddc4f0b28ed7d857001674#/post/4fddc603b28ed7d85700168a 
http://nodeguide.com/index.html

转自 http://sunnyhl.iteye.com/blog/1985539

node.js 模板 ejs 转的更多相关文章

  1. Node.js模板引擎学习----ejs

    环境:windows+node.js+express 一.安装ejs 打开cmd窗口,输入npm install ejs -g,等待下载安装完成. 二.使用 调用过程中使用路由机制和模板,路由请求地址 ...

  2. Node.js模板引擎的深入探讨

    每次当我想用 node.js 来写一个 web 相关项目的时候.我总是会陷入无比的纠结.原因是 JavaScript 生态圈里的模板引擎实在太多了,但那么多却实在找不出一个接近完美的,所谓完美的概念就 ...

  3. [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义

    一.转义与非转义 jade模板文件代码: doctype html html head meta(charset='utf-8') title jade学习-by ghostwu body h3 转义 ...

  4. node.js 使用ejs模板引擎时后缀换成.html

    这是一个小技巧,看着.ejs的后缀总觉得不爽,使用如下方法,可以将模板文件的后缀换成我们习惯的.html. 1.在app.js的头上定义ejs: 代码如下: var ejs = require('ej ...

  5. node.js + express(ejs) + mongodb(mongoose) 增删改实例

    MongoDB 安装步骤总结: 1.解压目录到d盘 mongodb 2.安装目录的下新建文件mongo.config文件 ##store data here dbpath=D:\mongodb\dat ...

  6. node.js—express+ejs、express+swig、

    安装:npm install -g express-generator 普通express 网站 创建:express testWeb 安装依赖:npm install 修改app.js文件并运行 找 ...

  7. consolidate.js 一个Node.js 模板引擎的集合

    consolidate是一个模板引擎的结合体.包括了常用的jade和ejs.通过配置我们就可以使用多种模板引擎. consolidate.js安装 npm install consolidate co ...

  8. [js高手之路]Node.js模板引擎教程-jade速学与实战4-模板引用,继承,插件使用

    一.block 模块复用 把需要复用的模块用block定义 block后面跟上模块的名字,引用一次block 内容就会被复用一次 编译之后的结果: 二,继承模板(extends) 在实际开发中,网站的 ...

  9. node.js的ejs模版引擎

    ejs版本是0.8.8,生成的views目录下面只有index.ejs and error.ejs,没有layout.ejs. D:\lianchuangfile\nodeDevelop\microb ...

随机推荐

  1. for语句输出图形

    一.输出以下图形 ******************************** 用for...for...嵌套循环,内循环控制每一行的个数(即列数),外循环控制行数 class ForDraw { ...

  2. java集合框架02——Collection架构与源码分析

    Collection是一个接口,它主要的两个分支是List和Set.如下图所示: List和Set都是接口,它们继承与Collection.List是有序的队列,可以用重复的元素:而Set是数学概念中 ...

  3. 欢迎来到Devil_lixu的技术博客

    Welcome to my blog 如果你觉得内容对你还有一点点的帮助,那就果断点赞吧^_^

  4. Android 仿映客直播间给主播发送礼物(实现连击效果)

    效果图 类库的介绍 org.dync.giftlibrary.widget GiftAnimationUtil.java 动画类GiftControl.java 给外部调用的类(核心)GiftFram ...

  5. C++用new创建对象和不用new创建对象的区别解析

    在C++用new创建对象和不用new创建对象是有区别的,不知你是否清楚的了解它们到底有什么样的区别呢?下面小编就用示例来告诉大家吧,需要的朋友可以过来参考下   我们都知道C++中有三种创建对象的方法 ...

  6. 《JavaScript DOM 编程艺术》

    前几天京东买了一本书,在豆瓣上好评如潮,买下了啃一啃,书名<JavaScript DOM 编程艺术>,在好好深造一下javaScript.一边啃,一边敲.当然应该要做好笔记.一些简单的就看 ...

  7. barmanager工具栏及gridcontrol部分属性设置

    1.工具栏部分属性设置,如:右键菜单,禁止移动等   2.gridControl属性设置,如选中行颜色,禁止移动隐藏等      

  8. SDOI Day1

    好了做了SDOI day1的3道题,来讲下做法及感想吧 T1:排序(暴力,搜索) 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3990 我们可 ...

  9. C#Redis 主从复制

    一.前戏 下面的列表清楚的解释了Redis Replication的特点和优势.    1). 同一个Master可以同步多个Slaves.    2). Slave同样可以接受其它Slaves的连接 ...

  10. Struts2初步接触

      使用idea快速搭建Struts2的Maven项目    首先使用intelij idea部署Maven项目 1.jar包引入 pom.xml 我们用的是阿里云 我用的是最新版的Struts2核心 ...