ejs js模板引擎,EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面。
所有的模板都要成长为图灵完备的语言,也就是要增加一个中间层何必呢,直接用js吧
优点 :1.快速开发 2:语法简单 3:执行速度 4:易于调试
- 入门
- 安装
npm install ejs
- 使用
http.createServer((req,res)=>{ var ejs = require('ejs');//引入ejs http.creatServer((req,res)=>{ //1.读取数据 getDataJson((dataJson)=>{//dataJson由getDataJson取得 //2.读取模块 fs.readFile("ejsStudy\\list.ejs",(err,data)=>{ if(!err){ let ejsList = data.toString();//输出为.ejs中的内容 //3.实例化模板 let tmp = ejs.render(ejsList,dataJson);//输出为将json数据填入后的,跟浏览器解析后的源文件一样了 //4.返回页面 res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"}); res.end(tmp); } else{ throw err; } }); }); }.listen(80,"127.0.0.1");
ejs.render(str,data,options)
- str 用来渲染数据的展示区域
- data 这个是渲染的数据,可以是对象或数组
- opstions
cache 缓存编译后的函数,需要提供 filename
filename 被 cache 参数用做键值,同时也用于 include 语句
context 函数执行时的上下文环境
compileDebug 当为 false 时不编译调试语句
client 返回独立的编译后的函数
delimiter 放在角括号中的字符,用于标记标签的开与闭
debug 将生成的函数体输出
_with 是否使用 with() {} 结构。如果为 false,所有局部数据将存储在 locals 对象上。
localsName 如果不使用 with ,localsName 将作为存储局部变量的对象的名称。默认名称是 locals
rmWhitespace 删除所有可安全删除的空白字符,包括开始与结尾处的空格。对于所有标签来说,它提供了一个更安全版本的 -%> (在一行的中间并不会剔除标签后面的换行符)。
escape 为 <%= 结构设置对应的转义(escape)函数。它被用于输出结果以及在生成的客户端函数中通过 .toString() 输出。(默认转义 XML)。
ps:从.json中取得json数据可以通过下述操作进行
fs.readFile("ejsStudy\tmp.json",(err,data)=>{//Json文件的文件路径
if(!err)
{
let jsonData = JSON.parse(data);
callBack(jsonData);
}
else{
throw err;
}
})
- 安装
附一个 .ejs 文件的部分
<body>
<%
for(var i = 0;i<lists.length;i++){
%>
<div>
<li>
<div>
<span><%= (i+1) %></span>
<span>
<%= lists[i].title %>
</span>
</div>
<div>
<span><%= lists[i].count %></span>
</div>
</li>
</div>
<%
}
%>
<span>
<%= source %>
</span>
</body>