node学习-express下使用ejs模板
程序员文章站
2022-07-01 10:39:25
...
Express中的模板引擎常用的是ejs与jade,这篇文章,主要介绍ejs模板引擎
目录结构
渲染方式
1.模板中输出变量 <%=变量名称%>
// index.js
app.set('view engine','ejs'); // 用于配置默认后缀名
app.get('/',(req,res)=>{
res.render('index',{text:'这是模板渲染的内容'}); // 将后面的数据渲染到index.ejs模板中
});
// index.ejs
<%=text%>
当访问’/’,则返回
2.<% js代码 %>
- 上面是对一个变量的输出,如果我们希望能渲染一个数组或对象,或者对渲染的数据根据判断规则显示数据,可做如下操作
- 下面的代码是显示人员姓名和年龄,根据isShow字段来进行判断是否现在当前人员信息:
// index.js
app.set('view engine','ejs');
let arr = [
{id:1,name:'Anna',age:6,isShow:true},
{id:2,name:'Jake',age:12,isShow:true},
{id:3,name:'Tom',age:3,isShow:false},
{id:4,name:'Tony',age:18,isShow:true},
{id:5,name:'Andy',age:10,isShow:true}
];
app.get('/',(req,res)=>{
res.render('index',{arr:arr});
});
// index.ejs
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<% for(var i=0;i<arr.length;i++){ %>
<% if(arr[i].isShow){ %>
<tr id="<%= arr[i].id %>">
<td><%= arr[i].name %></td>
<td><%= arr[i].age %></td>
</tr>
<% } %>
<% } %>
</tbody>
</table>
3.模板嵌套 <% include 模板嵌套路径 %>
// index.js
<% include ./header.ejs %>
<div class="center">center</div>
<% include ./footer.ejs %>
//header.js
<div class="header">header</div>
// footer.js
<div class="footer">Footer
</div>
显示效果如下:
4.如果后台返回的是一个html标签,我们使用<%- html标签 %>来进行渲染
// index.js
app.set('view engine','ejs');
app.get('/',(req,res)=>{
res.render('index',{html:'<h1>这是一个标题</h1>'});
});
// index.ejs
<%- html %>
显示如下:
ejs相关设置
1.设置ejs渲染html页面
// index.js
app.engine('html',require('ejs').__express);
app.set('view engine', 'html');
app.get('/',(req,res)=>{
res.render('index',{html:'<h1>这是一个标题</h1>'});
});
// index.html
<%- html %>
2.更改默认路径
- js模板的默认路径是在views中的,从最初的目录结构我们也发现了,所有的模板都是放在views中的,所以在render的时候我们可以不写views的目录,直接写要渲染的模板,但如果我们要渲染的模板不再view下而在其它目录下,例如static中,可进行如下设置:
// index.js
app.set('view engine', 'ejs');
app.set('views','static'); // 更改模板默认路径
app.get('/',(req,res)=>{
res.render('index',{html:'<h1>这是一个标题</h1>'});
});
目录结构如下:
下一篇: 安装多个火狐firefox浏览器详解
推荐阅读
-
node express使用HTML模板的方法示例
-
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
-
node+express+ejs使用模版引擎做的一个示例demo
-
详解在express站点中使用ejs模板引擎
-
在node环境下parse Smarty模板的使用示例代码
-
Node.js学习笔记(七) --- Node.js的静态文件托管、路 由、EJS 模板引擎、GET 、POST...
-
node学习-express下使用ejs模板
-
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
-
node express使用HTML模板的方法示例
-
node.js中EJS 模板的使用教程