node.js模板引擎ejs的使用方法

ejs模板引擎

安装模块 ejs express

cnpm install ejs-cli -g 
  • 标准的json字符串必须是单引号

  • 编译ejs模板文件命令

什么是模板引擎 为什么要用模板引擎

  • 循环遍历数据显示
  • 实现数据和视图分离

案例

  • 用jquery或者原生将以下用户信息添加到表格当中
userList = [{"username":"Alice",classNo:"1001","age":20},
{"username":"Tom",classNo:"1002","age":22},
{"username":"Jhon",classNo:"1001","age":19},
{"username":"Mary",classNo:"1003","age":21},
{"username":"Jerry",classNo:"1002","age":18},
{"username":"Jenny",classNo:"1004","age":22}]

ejs语法

ejs是一个JavaScript模板库,用来从json数据中生成html页面

  • 功能:缓存功能,能够缓存好的HTML模板;
  • <% code %>用来执行javascript代码
  1. ejs模板文件后缀名.ejs
  2. 编译ejs文件命令
    $ ejs-cli -f ./injector02.ejs -o ../dist -O '{"name":"Alice","age":15}'
  1. 模板中输出变量
  • <%= username %> 特殊字符将进行转义
  • <%- myHtml %> 变量直接输出,不做转义处理
  1. 变量定义标签属性
<h1 style="<%= style %>"></h1>
  1. 循环
  <ul>
      <% for(var i in users){ %>
      <li><%= users[i].username %>--<%= users[i].age %></li>
  <% } %>
  </ul>

ejs后缀

<!-- 定义一组数组 -->
  <% users=["Jack","Rose","Alice","Ave"] %>
  <ul>
      <% for(var item in users){ %>
      <li>
      <%= users[item] %>
      </li>
      <% } %>
  </ul>

控制台

$ ejs-cli -f for.ejs -o ../dist

服务台运行之后自动出现html

<!-- 定义一组数组 -->

<ul>
    
    <li>
    Jack
    </li>
    
    <li>
    Rose
    </li>
    
    <li>
    Alice
    </li>
    
    <li>
    Ave
    </li>
    
</ul>
  1. if语句
<% if(isLogin){ %>
    <p><a href="#">Jerry</a> | <a href="#">退出</a></p>
<% }else{ %>
    <p><a href="#">登录</a> | <a href="#">注册</a></p>
<% } %>

.ejs

<!-- 将所有条件判断代码放<% %>里面即可 -->
    <% if(isLogin){ %>
    <div class="user">
        <a href="">Jack</a>
        <a href="">退出</a>
    </div>
    <% }else{ %>
    <div class="login">
        <a href="">登录</a>
        <a href="">注册</a>
    </div>
    <% } %>
    ```

    7. 模板嵌套
    + <% include 嵌套模板路径 %>
    + <% include ./header %>

    ```
    head.ejs
    <meta charset="utf-8"/>
    <title><%= title %></title>
    <link rel="styleSheet" type="text/css" href="/css/index.css" />

    header.ejs
    <nav>
        <li>item-one</li>
        <li>item-two</li>
        <li>itm-three</li>
    </nav>
            
    footer.ejs
    <p>powered by Node.js Author:Jessco 215668636lai@gmail.com</p>
    index.ejs
    <!DOCTYPE html>
    <html lang="en">

        <head>
            <% include ./head %>
        </head>

        <body>
            <main>
                <% include ./header %>
                <div>main content</div>
                <% include ./footer %>
            </main>
        </body>
    </html>

为什么使用ejs

  1. 在web项目中渲染页面,我们很多时候会用json或者拼接的方式不够美观 破坏原有的结构大量的html拼接会使得html难以阅读

  2. ejs是一个简单高效的模板语言通过数据和模板,可以生成html页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值