koa流程
1、 EJS模板引擎的使用:
1、1 安裝koa-views和ejs:
npm install koa-views --save
npm install ejs --save
1、2 引入koa-views配置中介軟體:
const views = require('koa-views')
/**引入koa-views配置中介軟體:指定模板檔案的目錄,ejs為模板引擎*/
(views(__dirname + '/views', {
map: {html: 'ejs'}
}))
上面的程式碼中,指定了模板檔案的目錄為/views,且使用ejs做為模板引擎。
1、3 在Koa中使用ejs:
通過er(', data:data),向模板檔案傳遞資料:
/*Koa程式碼*/
('/', async (ctx, next)=>{
let title = 'Hello Joyitsai'
await er('index', {title: title})
})
1、4 ejs繫結上面傳送的資料用等號<%=title%>:
<!--html模板程式碼-->
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<h3><%=title%></h3>
</body>
</html>
1、5 ejs繫結html語句:
如果從後端傳送的資料是html語句,那麼要用<%-data%>來解析html語句:
('/', async (ctx, next)=>{
let data = '<h2>這是從後端發來的html語句</h2>'
await er('index', {data:data})
})
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<!--解析後端傳送的html語句用減號-->
<%-data%>
</body>
</html>
1、6 ejs引入模板:
在實際開發中,像導航欄這樣公共的頁面結構會單獨分離成一個模板檔案,然後在其他頁面中直接匯入即可,同樣,這裡也可以通過<%include %>引入模板頁面,模板檔案結構如下:
|——
|—— ...
|——views
|——public
|——
|——
其中,為要在中引入的模板,那麼引入程式碼如下:
<!--public/-->
<h2>這是頭部資訊頁面</h2>
<!-->
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<!--預設views/為主目錄了,引入路徑不加雙引號或單引號-->
<%include public/%>
</body>
</html>
1、7 ejs模板判斷語句:
在ejs模板中。..語句要包在<%%>中
/**後端程式碼*/
('/', async (ctx, next)=>{
let age = 24
await er('index', { age:age})
})
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<%if(age>20){%>
大於20歲
<%}else{%>
小於等於20歲
<%}%>
</body>
</html>
1、8 ejs模板中的迴圈資料:
同樣,將for(var i=0i&thi++){}迴圈包含在<%%>中,示例程式碼如下:
/**後端程式碼*/
('/', async (ctx, next)=>{
let datalist = ['joyitsai', 'ming', 'bob']
await er('index', {datalist:datalist})
})
<body>
<br/>
<ul>
<%for(var i=0i&thi++){%>
<li><%=datalist[i]%></li>
<%}%>
</ul>
</body>
另外,如果需要在每一個頁面都要獲取像使用者資訊這樣的資料,每次er()時都傳遞這個資料會比較麻煩,解決辦法是,通過e = {data:data}來設定公共資料,繫結在e上的資料,可以在任何一個頁面中直接呼叫,而不需要通過er()來傳遞了。
關於ejs模板引擎的一些常用用法都列舉出來了,多多練習就記熟了,其實並沒什麼難度。
2、 art-template模板引擎的使用:
art-template是常用模板引擎中渲染速度最快的,看下面一張測試圖:
image.png
art-template支援ejs語法,所以可以完全按照ejs的語法來寫。
2、1 安裝art-template引擎:
npm install art-template --save
npm install koa-art-template --save
2、2 引入並配置art-template:
const Koa = require('koa')
const render = require('koa-art-template')
const path = require('path')
const app = new Koa()
render(app, {
root: (__dirname, 'views'), //模板檔案所在目錄
extname: ', //宣告模板檔案的字尾名
debug: _ENV !== 'production' //是否開啟除錯模式
})
2、3 art-template模板引擎語法:
基本與ejs的相同,除引入其他模板檔案除外,在art-template中,引入其他模板檔案的語法如下:
<body>
<!--art-template中引入模板時要加括號和引號-->
<%include(')%>
<h3><%=title%></h3>
</body>
其他語法自行參考官方文件:art-template語法。
-
海爾491是單迴圈嗎
海爾491是單迴圈,單迴圈冰箱壓縮機會頻繁啟動,噪音大,耗電量大,而且製冷不均勻,冷凍室往往會出現過冷現象,結很厚的霜...
-
瀋陽市場新年禮盒都有啥
瀋陽市場上新年禮盒有點心和水果大禮包,也有海鮮和肉類大禮包,還有堅果大禮包,另外還有半成品的年席大禮包等一些新年特色禮包。...
-
海爾空調間隔幾分鐘製冷
應該是空調進入正常化霜運行了。此時室外環境溫度較低,溼度較大在這種情況下空調製熱執行會每隔1小時左右化一次霜,化霜時間在3~10分鐘不等,化霜執行時空調室內外機風機電機停止執行,只有壓縮機運轉。3分鐘,製冷是因為溫度不一致了,所以又啟動開始製冷了。這是智慧控...
-
喬思雨厲墨川小說名字
《厲少新歡:寵妻的祕密》又名《傾世寵婚:晚安,厲先生》《恰似你的溫柔》《明天開始忘記》,作者:樓縈,型別:豪門總裁,狀態:已完結。文案:十八歲那年,她有一段為人不恥的黑暗,可這個祕密只能爛在心裡也不能與人說。可她結婚一年,都沒讓丈夫“幸福”。本以為會守著一段無性的...