Node模板引擎學習(3)--EJS

jade雖然簡潔受很多大神推崇并且也是官方推薦, 但我個人覺得可讀性太差了, 個人傾向樸實的EJS,這里兩者都進行學習,至于Handlebars,Swig如果公司要用再學習吧

EJS

EJS幾乎不要學習成本, 舉兩個例子差不多就能用了,如下

<% if (user) { %>
  <h2><%= user.name %></h2>
<% } %>
<ul>  
    <% for(var i=0; i<supplies.length; i++) { %>  
        <li>  
            <a href='supplies/<%= supplies[i] %>'>  
                <%= supplies[i] %>  
            </a>  
        </li>  
    <% } %>  
</ul>

注意 :
<% Scriptlet' 標簽, 用于控制流,沒有輸出

<%= 向模板輸出值(帶有轉(zhuǎn)義)

<%- 向模板輸出沒有轉(zhuǎn)義的值

<%# 注釋標簽,不執(zhí)行,也沒有輸出

<%% 輸出字面的 '<%'

%> 普通的結(jié)束標簽

-%> Trim-mode ('newline slurp') 標簽, 移除隨后的換行符

在Express中設置模板引擎

app.set('views', './views');  // 指定模板文件存放位置
app.set('view engine', 'jade')  // 設置默認的模板引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine( 'ejs', require('ejs')._express )

注意: _express函數(shù)是許多模板引擎提供的回調(diào)函數(shù)。但是這個函數(shù)只能在默認的文件擴展名上工作。但是,有種情況我們使用的不是對應模板引擎的擴展名的怎么辦呢?這時不能再調(diào)用_express函數(shù)。在這種情況下我們可以使用一個替代的函數(shù),例如: 在EJS中提供了renderFile函數(shù)來完成相同的功能。

app.engine( '.html', require('ejs').renderFile );  // 注冊html模板引擎 
app.set('view engine', 'html');  // 將模板引擎換成html
app.engine('.html',ejs.__express)
app.set('view engine','html)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 模板引擎(Template Engine), 是用來解析對應類型模板文件然后動態(tài)生成由數(shù)據(jù)和靜態(tài)頁面組成的視圖文件...
    _palm閱讀 13,256評論 4 16
  • Express是Node社區(qū)里的超級明星,他的作者TJ Holowaychuk也因此成為了社區(qū)里大紅大紫的開發(fā)者。...
    2MuchT閱讀 3,125評論 1 30
  • 搭建開發(fā)環(huán)境并模擬交互數(shù)據(jù) 一、實驗說明 下述介紹為實驗樓默認環(huán)境,如果您使用的是定制環(huán)境,請修改成您自己的環(huán)境介...
    玄月府的小妖在debug閱讀 2,231評論 0 15
  • Express 框架 第一章 Express簡介 npm提供了大量的第三方模塊,其中不乏許多Web框架,我們沒有必...
    whitsats閱讀 1,270評論 0 0
  • Koa2-blog 2018-1-5 更新教程(新增上傳頭像、新增分頁、樣式改版、發(fā)布文章和評論支持markdow...
    wclimb閱讀 9,516評論 1 53

友情鏈接更多精彩內(nèi)容