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. Azure机器学习入门(三)创建Azure机器学习实验

    在此动手实践中,我们将在Azure机器学习Studio中一步步地开发预测分析模型,首先我们从UCI机器学习库的链接下载普查收入数据集的样本并开始动手实践: http://archive.ics.uci ...

  2. C#数组和集合

    一维数组 概述:数组是通过指定数组的元素类型.数组的(秩)维数及数组每个维度上的上限和下限来定义的,及一个数组的定义需要包含以下几个要素. 类型   数组的维数   每个维的上限下限 声明:数据类型  ...

  3. HttpClient构造文件上传

    在项目中我们有时候需要使用到其他第三方的api,而有些api要求我们上传文件,search一下,下面将结果记录一下喽! 含义 ENCTYPE="multipart/form-data&quo ...

  4. 什么是DOCTYPE?

    一.DOCTYPE是什么? DOCTYPE是文档类型的速记(文档.网页中指定页面的XHTML或HTML版本类型).使符合标准的页面,一个关键组成部分是DOCTYPE声明.只有确定了正确的XHTML D ...

  5. HTML学习二

    继续上一次的学习: <html> <head> <title>新增雇员</title> <script language="javasc ...

  6. 初探ASP.NET Web API

    什么是ASP.NET Web API? 官方的解释是 ASP.NET Web API is a framework that makes it easy to build HTTP services ...

  7. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  8. Servlet支持上传多张图片

    首先前端的表单是这个形式: <form  target="_self" method="post" action="fileUploadMult ...

  9. 【JSON学习之道】js操作JSON

    JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON ...

  10. iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解

    iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件.如iOS回顾笔记(02)中的"书" ...