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. Windows Container 和 Docker:你需要知道的5件事

    微软在2016年的Ignite技术大会上正式发布了Windows Server 2016,其中的容器服务已经可以作为生产环境使用.这意味着Windows 内置的容器服务正式进入了大家的视野,虽然之前我 ...

  2. linux 进程间通信 之fifo

    上一篇博客已经介绍了一种进程间通信的方式,但是那只是针对于有血缘关系的进程,即父子进程间的通信,那对于没有血缘关系的进程,那要怎么通信呢?  这就要创建一个有名管道,来解决无血缘关系的进程通信, fi ...

  3. oracle 11G RAC会话故障转移测试

    目前接手的几个项目中,默认使用的oracle RAC数据库服务,均不能实现自动的会话转移,尤其是对于应用的长连接,一旦发生数据库故障,需要重启应用.实际11G具备会话迁移机制,为此做了如下配置测试,供 ...

  4. Django实现用户注册登录

    学习Django中:试着着写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O哈哈~===== ================= Ubuntu python 2.7.12 Django 1. ...

  5. [翻译]现代java开发指南 第一部分

    现代java开发指南 第一部分 第一部分:Java已不是你父亲那一代的样子 第一部分,第二部分 =================== 与历史上任何其他的语言相比,这里要排除c语言和cobol语言,现 ...

  6. 【转】CXF+Spring+Eclipse简明示例

    多系统(异构系统)进行交互时,一种良好的方式便是调用Web Service,本示例基于Apache组织的CXF,为了方便起见特将服务端和客户端写在同一个工程下,实际项目中是不可能的,但是客户端却依赖于 ...

  7. Activiti工作流(二)之常用操作

    前面介绍了Activiti工作流的基本操作,但是在实际应用过程中,往往不满足项目需求,因此还需要了解一些其他的功能比如:连线.排他网关.并行网管.流程变量.个人任务及组任务的三种发布方式. 下面将介绍 ...

  8. C#实现分页组件

    分页无论是前端和后端,基本都有广泛应用!下面通过一个小小案例完成这个分页效果: 参数含义:string urlFormat: 要传给服务器端的URL地址格式,方便在点超链接时进行相应的跳转 long ...

  9. MySQL学习分享-->查询-->查询的原理

    查询的原理 在一个查询中常包含下述子句: 1.select,2.distinct,3.join,4.on,5.from,6.where,7.having,8.group by,9.order by,1 ...

  10. WeMall微信商城签到插件Sign的主要源码

    WeMall微信商城源码签到插件Sign,用于商城的签到系统,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php namespace Ad ...