iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
自我挑戰組

利用 node.js/express 架設網站系列 第 13

Day-13 模版引擎與視圖渲染

  • 分享至 

  • xImage
  •  

之前也有講到模板,今天繼續深入研究
1.理解模版引擎的作用
2.安裝與配置常用的模版引擎
3.渲染靜態與動態內容

理解模版引擎的作用

模版引擎(Template Engine) 是用來將後端數據動態渲染到 HTML 頁面中的工具。它允許開發者通過變數或控制結構(如條件、循環)來生成動態的 HTML。這樣,後端能根據不同的數據渲染不同的頁面內容。

常見的模版引擎包括:

  • Pug:簡潔、無標籤的語法。

  • EJS:類似 HTML 的語法,易於學習和使用。

  • 安裝與配置模版引擎
    Pug
    安裝 Pug

npm install pug

設置 Pug 為 Express 的模版引擎:

app.set('view engine', 'pug'); // 設置 Pug 為默認模版引擎
app.set('views', './views');   // 指定存放模版文件的目錄

創建 Pug 模版文件:

doctype html
html
    head
        title= title
    body
        h1 Hello #{name}!

渲染模版:

app.get('/', (req, res) => {
    res.render('index', { title: 'Welcome', name: 'John' });
});

EJS
安裝 EJS:

npm install ejs

設置 EJS 為模版引擎:

app.set('view engine', 'ejs'); // 設置 EJS 為模版引擎
app.set('views', './views');   // 指定模版文件目錄

創建 EJS 模版文件

<!DOCTYPE html>
<html>
<head>
    <title><%= title %></title>
</head>
<body>
    <h1>Hello <%= name %>!</h1>
</body>
</html>

渲染 EJS 模版:

app.get('/', (req, res) => {
    res.render('index', { title: 'Welcome', name: 'John' });
});

渲染靜態與動態內容

模版引擎的強大之處在於能夠根據數據生成動態頁面。可以將靜態的 HTML 片段與動態的變量混合使用。

  • 渲染動態數據:
app.get('/users', (req, res) => {
    const users = [{ name: 'Alice' }, { name: 'Bob' }];
    res.render('users', { title: 'User List', users: users });
});

在 users.pug 中,利用循環來渲染每個用戶的名稱:

doctype html
html
    head
        title= title
    body
        h1= title
        ul
            each user in users
                li= user.name

部署與性能優化

在應用中使用模版引擎生成動態頁面時,應該注意性能優化。例如:

  • 快取靜態頁面:如果某些頁面不會頻繁改變,可以考慮使用快取技術來提高頁面的加載速度。
  • 分頁:當處理大量數據(如用戶列表)時,應該實現分頁功能來減少單個頁面上渲染的數據量。

上一篇
Day-12 中介軟體與錯誤處理
下一篇
Day-14 Express 中的資料庫連接與 CRUD 操作
系列文
利用 node.js/express 架設網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言