当前项目中需要使用的模板引擎,对我们前端来说基本没有学习成本,就是js 和html+css

1.安装

  1. npm i ejs --save

2.设置模板引擎和目录

view engine 是固定固定的字符串
Views 也是固定的字符串

  1. app.set('view engine','ejs');
  2. app.set('views',path.join(__dirname,'views'))

3.使用

要把ejs显示出来,就必须通过路由的render方法

  1. app.get('/test2',function(req,res){
  2. res.render('test2')
  3. })

render方法
参数1:模板名称, 会自行去模板目录里面找名字相同的文件
参数2: 需要返回到模板里面数据

  1. app.get('/test1',function(req,res){
  2. res.render('test1',{
  3. name:'young',
  4. age:'<h2>18</h2>',
  5. login:false,
  6. arr:[
  7. {name:'yy1',age:18},
  8. {name:'yy2',age:17},
  9. {name:'yy13',age:20},
  10. {name:'yy12',age:17}
  11. ]
  12. })
  13. })

4.ejs标签

<%- %> 解析输出,会解析html
<%= %> 转义输出, 把html转换成字符串输出
<%%> 脚本标签 ,可以用控制显示或者循环输出

控制显示

  1. <div>
  2. <% if(login){ %>
  3. <span>young</span>
  4. <span>发表文章</span>
  5. <span>退出</span>
  6. <% }else{ %>
  7. <span>登录</span>
  8. <span>注册</span>
  9. <%}%>
  10. </div>

循环输出

  1. <div>
  2. <ul>
  3. <% for(var i=0; i<arr.length; i++){ %>
  4. <li><%= arr[i].name %> -<%= arr[i].age %> </li>
  5. <% } %>
  6. </ul>
  7. </div>

5.include 包含

可以提取页面中的公共部分, 然后用include引进来

  1. <%- include('header') %>

6.注意

在ejs页面中,需要引入的资源,都得放在静态目中!!