node.js 模板 ejs 转
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格式字符串
=====================
模板示例:
- <!-- templates/supplies.ejs -->
- <h1>Supplies</h1>
- <ul>
- <% for(var i=0; i<supplies.length; i++) {%>
- <li><%= supplies[i] %></li>
- <% } %>
- </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 转的更多相关文章
- Node.js模板引擎学习----ejs
环境:windows+node.js+express 一.安装ejs 打开cmd窗口,输入npm install ejs -g,等待下载安装完成. 二.使用 调用过程中使用路由机制和模板,路由请求地址 ...
- Node.js模板引擎的深入探讨
每次当我想用 node.js 来写一个 web 相关项目的时候.我总是会陷入无比的纠结.原因是 JavaScript 生态圈里的模板引擎实在太多了,但那么多却实在找不出一个接近完美的,所谓完美的概念就 ...
- [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义
一.转义与非转义 jade模板文件代码: doctype html html head meta(charset='utf-8') title jade学习-by ghostwu body h3 转义 ...
- node.js 使用ejs模板引擎时后缀换成.html
这是一个小技巧,看着.ejs的后缀总觉得不爽,使用如下方法,可以将模板文件的后缀换成我们习惯的.html. 1.在app.js的头上定义ejs: 代码如下: var ejs = require('ej ...
- node.js + express(ejs) + mongodb(mongoose) 增删改实例
MongoDB 安装步骤总结: 1.解压目录到d盘 mongodb 2.安装目录的下新建文件mongo.config文件 ##store data here dbpath=D:\mongodb\dat ...
- node.js—express+ejs、express+swig、
安装:npm install -g express-generator 普通express 网站 创建:express testWeb 安装依赖:npm install 修改app.js文件并运行 找 ...
- consolidate.js 一个Node.js 模板引擎的集合
consolidate是一个模板引擎的结合体.包括了常用的jade和ejs.通过配置我们就可以使用多种模板引擎. consolidate.js安装 npm install consolidate co ...
- [js高手之路]Node.js模板引擎教程-jade速学与实战4-模板引用,继承,插件使用
一.block 模块复用 把需要复用的模块用block定义 block后面跟上模块的名字,引用一次block 内容就会被复用一次 编译之后的结果: 二,继承模板(extends) 在实际开发中,网站的 ...
- node.js的ejs模版引擎
ejs版本是0.8.8,生成的views目录下面只有index.ejs and error.ejs,没有layout.ejs. D:\lianchuangfile\nodeDevelop\microb ...
随机推荐
- 笑谈ArcToolbox (4) 非我族类
笑谈ArcToolbox (4) 非我族类 by 李远祥 ArcToolbox的工具既能直接对数据源进行处理,也能对图层以及被选择要素进行处理.但有些数据看起来是空间数据,但实际上在处理的时候还是会出 ...
- cmake的命令execute_process
execute_process(COMMAND <cmd1> [args1...]] [COMMAND <cmd2> [args2...] [...]] [WORKING_DI ...
- UI进阶 即时通讯之XMPP好友列表、添加好友、获取会话内容、简单聊天
这篇博客的代码是直接在上篇博客的基础上增加的,先给出部分代码,最后会给出能实现简单功能的完整代码. UI进阶 即时通讯之XMPP登录.注册 1.好友列表 初始化好友花名册 #pragma mark - ...
- mybatis随笔三之SqlSession
在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public ...
- Swift 内存管理详解
Swift内存管理: Swift 和 OC 用的都是ARC的内存管理机制,它们通过 ARC 可以很好的管理对象的回收,大部分的时候,程序猿无需关心 Swift 对象的回收. 注意: 只有引用类型变量所 ...
- 使用devstack搭建openstack Newton 版本的坑
国外源访问速度慢怎么办? 使用国外源,加之带宽紧张,搭建过程是很累的,这里推荐大家使用一下源: devstack包源.:http://git.trystack.cn pip源: [global] in ...
- Struts系列笔记(6)---action接收请求参数
action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...
- php单例模式与工厂模式
单例模式:单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的. 所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记 ...
- 开发mis系统的技术
一.b/s架构 b/s架构:就broser/server,浏览器/服务器的说法.服务器端要运行tomcat,提供链接数据库服务供java代码读写数据,这个可以在eclipse中配置运行.浏览器则解释j ...
- phpcmsV9于基本介绍
1.phpcms做企业站 2.内容+管理栏目=页面显示的导航 3.文件目录结构 根目录 api 接口文件目录 caches 缓存文件目录 confings 系统配置文件目录 caches_*系统缓存目 ...