Nodejs高扩展性的模板引擎 functmpl简介
关于functmpl
functmpl 是一个基于JavaScript/Nodejs的高扩展性的模板引擎
模板格式
<#包含/>
如果想在一个模板中插入另一个模板,可以使用<#包含/>
比如插入模板 a.ftl :
<#"a.ftl"/>
<@功能/>
除了输出变量、包含模板外,也可以加入更多自定义的功能,比如:枚举、赋值
但额外的功能需要自定义。
自定功能的具体格式为
<@功能名称 参数名=参数值/>
<@功能名称 参数名=参数值>
子节点
</>
其中,参数名/参数值可以没有或者含有多对。
参数值可以是变量名,或者是JSON
子节点内容可以是普通内容、<=输出/>、<#包含/>或者<@功能/>
<`表达式`>
如果只是执行表达式,可以使用<`表达式`>
<`=输出`>
如果想输出一个变量的值,可以使用<=输出/>
比如输出变量 val 的值
<`=val`>
如何使用
获得functmpl
使用npm 或者 git
npm install functmpl git clone git@github.com:wangchenxunum/functmpl.git git clone git@git.oschina.net:wangchenxunum/functmpl.git
引入到Nodejs
let functmpl = require('functmpl');
引入到浏览器
<script src="functmpl.js"></script>
模板解析器实例
//创建一个解析器
let ftl = functmpl();
//加入功能处理器
ftl.use(functmpl.func);
//模板解析
ftl.template = '<!DOCTYPE html>n
<html>n
<head>n
<title><`=title`></title>n
</head>n
<body>n
<@enum key="key" value="value" var=list>n
<@scope>n
<@set key="key" value="1" type="create"/>n
<`=key`>:<`=value`><br>n
</>n
<`=key`>:<`=value`><br>n
</>n
</body>n
</html>'
//设置模板位置如果使用<#包含/>,必须要有一个基本的相对位置
ftl.filename = 'template.ftl';
//也可以直接读取模板文件
ftl.loadFile('template.ftl',function(status){
if (status) {
//读取文件成功,并且已经解析
//调用模板生成数据
ftl.parse(function(text){
//当生成完毕后调用回调函数
console.log("生成完成:n" + text);
},JSON.parse(data.value));
} else {
//读取文件失败
}
});
基于node.js依赖express解析post请求四种数据格式
node.js依赖express解析post请求四种数据格式分别是这四种:www-form-urlencodedform-dataapplication/jsontext/xml1、www-form-urlencoded这是http的post请求默认的数据格式,需
Nodejs+Socket.io实现通讯实例代码
目录结构D:.│package.json│server.js│└─publicindex.htmlsocket.io.js需要的条件socket.io.js供前端界面初始化iosocket.io供NodeJs端提供socket方法socket.io.js存在于socket.i
Node.js与Sails redis组件的使用教程
有段时间没写关于NodeJs的文章了,今天也是为了解决高并发的问题,而想起了这个东西,IIS的站点在并发量达到200时有了一个瓶颈,于是想到
