1、EJS是一个简单高效的模板语言,通过数据和模板,可以生成HTML标记文本。可以说EJS是一个JavaScript库,EJS可以同时运行在客户端和服务器端,客户端安装直接引入文件即可,服务器端用npm包安装

2、EJS的特点:

  • 快速编译和渲染
  • 简单的模板标签
  • 自定义标记分隔符
  • 支持文本包含
  • 支持浏览器端和服务器端
  • 模板静态缓存
  • 支持express视图系统

3、EJS成员函数:

  • Render(str,data,[option]):直接渲染字符串并生成html
    str:需要解析的字符串模板
    data:数据
    option:配置选项
  • Compile(str,[option]):编译字符串得到模板函数
    str:需要解析的字符串模板
    option:配置选项

两个函数包括的配置选项如下:

 

4、EJS常用标签

  • <% %>流程控制标签
  • <%= %>输出标签(原文输出HTML标签)
  • <%- %>输出标签(HTML会被浏览器解析)
  • <%# %>注释标签
  • % 对标记进行转义
  • -%>去掉没用的空格
    说明:ejs中的逻辑代码全部用JavaScript

5、接下来看一个例子就可以明白EJS的简单语法了

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>EJS Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<script type="text/javascript" src="ejs.min.js"></script>
<script >
var data={flag:false,
data1:["====1","====2","====3"],
data2:["====4","====5","====6"]
}; window.onload=function(){
var tem=document.getElementById("tem").innerHTML;
var html=ejs.render(tem,data);
document.getElementsByTagName("body")[0].innerHTML=html;
}
</script>
</head>
<body>
<script type="text/javascript" id="tem">
<ul>
<%if(flag){%>
<%for (var i=0;i<data1.length;i++){%>
<li><%=data1[i]%></li>
<%}%>
<%}else{%>
<%for(var i=0;i<data2.length;i++){%>
<li><%=data2[i]%></li>
<%}%>
<%}%>
</ul>
</script>
</body>
</html>

运行后结果如下:

 

4、过滤器(把结果进一步加工的函数):

 

 

 

语法如下:

<%=: data.age | plus:5%>

注意:和|两个符号:
此外,还有文件包含的语法:

<%- include(path) %>

接下来用这个写一个服务器端的,文件目录如下:

 

app.js文件内容如下:

var http=require("http");
var express=require("express");
var app=express(); var tem={
message:"我是中间部分"
}
//创建服务器
http.createServer(app).listen(3000,function(){
console.log("Server is listening port 3000");
});
//挂载静态资源处理中间件
app.use(express.static(__dirname+"/public"));
//设置模板视图的目录
app.set("views","./public/views");
//设置是否启用视图编译缓存,启用将加快服务器执行效率
app.set("view cache",true);
//设置模板引擎的格式即运用何种模板引擎
app.set("view engine","ejs");
//设置路由
app.get("/ejs",function(req,res){
res.render("ejs1",{title:tem.message});
});

ejs1.ejs文件内容如下这里引用了头部和尾部:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>EJS</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="../css/main.css" rel="stylesheet">
</head>
<body>
<%- include("./header.ejs") %>
<h1><%=title%></h1>
<%- include("./footer.ejs") %>
</body>
</html>

头部和尾部都是一行代码如下:

<h1>我是头部</h1>
<h1>我是尾部</h1>

启动服务器后,我们输入http://localhost:3000/ejs,显示内容如下:

 

这说明我们利用ejs模板做到了正确输出,这既可以大大增加代码的复用性,而且当data为数据库中的数据时,我们就可以做到实时更新网站数据了,这样一个简单动态网站就完成了,听起来是不是很简单,不过还有很长一段路要走滴,先睡了,下次再更。

最新文章

  1. spring+mybatis+oracle/mysql整合开发需要的jar包详解
  2. Android Studio使用教程-菜单(Edit)
  3. Android_Fragment(碎片)知识点讲解
  4. pandas 修改 DataFrame 列名
  5. easyui.combotree.search.js
  6. dump java
  7. Ubantu下编译Linux Kernel
  8. [课堂实践与项目]IOS优先级的计算器
  9. ios学习笔记(一)之Object-C
  10. JavaScript 的注释和快捷键
  11. Storm入门(九)Storm常见模式之流聚合
  12. XAMPP支持多PHP版本
  13. 利用Selenium爬取淘宝商品信息
  14. 洛谷P1030求先序排列
  15. MySql 数据库移植记录
  16. Docker安装指定版本
  17. js,vue.js一些方法的总结
  18. ssh架构之hibernate(四)二级缓存
  19. JNDI 在 J2EE 中的角色
  20. Java获取电脑IP、MAC、各种版本

热门文章

  1. 201621123033 《Java程序设计》第2周学习总结
  2. [HNOI2015][bzoj4011] 落叶枫音 [拓扑DP]
  3. Lights inside 3D Grid LightOJ - 1284 (概率dp + 推导)
  4. Apache2.4启动时报AH00526错误(Invalid command &#39;Order&#39;)
  5. JAVA学习资料大全
  6. TCP面试题之四次挥手过程
  7. BZOJ 4078: [Wf2014]Metal Processing Plant
  8. 信息传递(NOIP2015)(寻找最小环。。)
  9. zmap zgrab 环境搭建
  10. MFC 菜单操作