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. 纯CSS3动画:一棵跳舞的树

    <!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/htm ...

  2. 数据库SQL,NoSQL之小感悟

    遇到1000万数据表 最近遇到一个问题,就是单表数据过的存储及查询问题.举个例子:1000万的数据存在一个表中,字段4-5个样子,日常 开发中难免要做过滤.排序.分页.如果把这几个放在一起即要过滤又要 ...

  3. (求租仓库)navigationController .navigationBar 的属性设置

    需要做成的效果如下图的

  4. Python学习--17 进程和线程

    线程是最小的执行单元,而进程由至少一个线程组成.如何调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间. 进程 fork调用 通过fork()系统调用,就可以生成一个子进程 ...

  5. mybatis随笔三之SqlSession

    在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public ...

  6. Android Studio中.9.png文件出错问题

    昨天使用别人的.9.png图片放在自己的android studio工程下使用,出现如下错误: :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DA ...

  7. DFS 分布式文件系统 选型笔记

    需求按优先级顺序如下: 1)存放3TB以上中小型文件,图片为主,平均在500~700k,一般在1M以内. 2)要集群化,支持负载均衡,高可用高性能.有大企业使用背书最好. 3)提供Java程序上传文件 ...

  8. ES6__异步开发优化

    一:JS事件循环 1:同步调用 同步调用是一种阻塞式调用,调用要等待双方执行完毕才返回,他是一种单向调用. 2:回调 回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口. 3: ...

  9. API练习_图形

    #include<windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINS ...

  10. ASP.NET MVC 项目直接预览PDF文件

    背景及需求 项目使用的是MVC4框架,其中有一个功能是根据设置生成PDF文件,并在点击时直接预览. 实现过程 1.第一版实现代码: HTML内容 @{ Layout = null; } <!DO ...