昨天已經建立了一個樣板,今天就要讓樣板隨我們需求的文字做變化~
讓我們繼續看下去!
動態網頁中常常會出現模板一樣,但內容文字不一樣的網頁,
想要讓我們的畫面因應不同頁面進行渲染的話,
EJS 提供了 <%= 變數 %>
的方法,可以動態的出現的變數。
首先我們需要修改我們的 page.ejs
檔案,增加一個 text 的變數。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"></meta>
<title>圖書資訊</title>
</head>
<body>
<h3> <%= text %> Page </h3>
</body>
</html>
接著,到我們各個路由的地方,將原本 res.send()
的地方,
修改為 → res.render('ejs檔案名', {'變數名': '想要顯示的文字'})
。
以我們 res.render('page',{'text': 'Get a book'})
為例 →
即為使用 page.ejs
檔案,並想要頁面顯示出 Get a book
。
完整修改可參考底下:
// routes/modules/book.js
// define the book page route by get method
router.get('/', (req, res) => {
res.render('page',{'text': 'Get a book'})
})
// define the book route by post method
router.post('/', (req, res) => {
res.render('page',{'text': 'Post a book'})
})
// define the book route by get method
router.delete('/', (req, res) => {
res.render('page',{'text': 'Delete the book'})
})
接著我們來開啟伺服器試試看吧~
開啟瀏覽器 http://localhost:3000/book
我們想要顯示的文字就這麼輕鬆順利的出現了!
如果有 Postman 的話可以試試看我們剛剛建立的各種 book 路由方法的頁面。
POST
DELETE
還有判斷邏輯或是迴圈的用法,都可以很靈活的運用,
詳細可以參考 EJS 的 github。
另外還想提一下,假如你網頁每頁都有固定的 Header
或 Footer
,
也可以將重複的程式碼拉出來做一個 獨立的ejs
檔案,要使用時就可以直接引入。
首先先建立一個 footer.ejs
的檔案,並做一個簡易的 HTML。
<footer>
<div>This is Footer Area</div>
</footer>
接著回到我們 page.ejs
檔案,使用 <%- include('檔案名'); %>
將檔案引入,
程式會變成
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"></meta>
<title>圖書資訊</title>
</head>
<body>
<h3> <%= text %> Page </h3>
</body>
<!-- Footer -->
<%- include('footer'); %>
<!-- Footer -->
</html>
接著再開啟瀏覽器輸入我們的 http://localhost:3000/book
Footer 的部分順利可以被引入到 page 檔案了!
經過了八天,我們熟悉了 express 的核心技術,路由.中介軟體和樣版引擎
對框架有了基本的了解,再來會開始進行資料庫的連線~
大家明天見囉!
參考資料: