1. 程式人生 > >node.js模板引擎ejs的使用方法

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 215668636[email protected].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頁面