Express專案建置流程—渲染 HTML 樣板(Javascript版)

更新 發佈閱讀 4 分鐘

※ 安裝 express-handlebars:

npm install express-handlebars
raw-image

※ 建立第一個頁面:

製作共用 Layout:

先建立整個網站共用的主要佈局 (layout)。把共用 layout 檔案路徑設定為:views/layouts/main.hbs,請你先照這個規劃新增資料夾與檔案:

  • views 資料夾
  • 在 views 底下新增 layouts 資料夾
  • 在 layouts 底下新增 main.hbs 檔案
raw-image

製作 main.hbs 內容:

範例:

<!DOCTYPE html>

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Todo List</title>
</head>

<body>
{{{ body }}}
</body>

</html>

裡面在網頁內容,也就是 <body> 標籤中,我們用了三花括 {{{ body }}},這個三花括可以抽換成其他的 HTML 內容。

也就是說,未來我們製作其他 view 樣板時,就只需要寫 <body> 的內容,然後再傳進 main 樣板裡三花括的地方,組裝成一支完整的網頁。

raw-image

主程式啟用 Handlebars:

回到主程式 app.js 做設定,把樣板引擎指定為 Handlebars:

// 使用了新版的express-handlebars
const { engine } = require('express-handlebars');

app.engine('hbs', engine({ defaultLayout: 'main', extname: '.hbs' }))
app.set('view engine', 'hbs')

新增 index 樣板:

接著,為了測試 Handlebars 有沒有設定成功,讓我們製作一個臨時的局部樣板 (partials) 來試試看,請你新增 views/index.hbs,並加入暫時的內容:

<h2>Hello world! 這是 index</h2>

修改首頁路由:

修改 / 的路由,使用 res.render() 指令,要求渲染一個叫 index 的頁面。res.render 的意思是指 Express 會「回傳 HTML 來呈現前端樣板」。

// 設定路由
// Todo 首頁
app.get('/', (req, res) => {
res.render('index')
})

測試結果:

現在打開瀏覽器並連到http://localhost:3000/,看看 index 樣板裡的對應內容有沒有成功出現:

raw-image

建立 commit 節點:

[~/todo-list] $ git add .
[~/todo-list] $ git commit -m "feat: add handlebars"






留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
26會員
171內容數
全端網頁開發專業知識分享
2025/10/26
※ 應用程式跟資料庫連線: 在開發的過程中,你會有一個終端機視窗負責運行 Node.js,也就是你的 web server。我們眼前的電腦就是「網路伺服器 (web server)」,而我們可以在電腦上打開瀏覽器,就能跟自己撰寫的應用程式進行互動。在資料庫伺服器方面 (database serve
Thumbnail
2025/10/26
※ 應用程式跟資料庫連線: 在開發的過程中,你會有一個終端機視窗負責運行 Node.js,也就是你的 web server。我們眼前的電腦就是「網路伺服器 (web server)」,而我們可以在電腦上打開瀏覽器,就能跟自己撰寫的應用程式進行互動。在資料庫伺服器方面 (database serve
Thumbnail
2025/09/12
※ 首頁重點: index.html: <body> <!-- 主結構 --> <div class="wrapper"> <!-- Start main --> <section class="main"> <!-- Start jumbotron --> <div
Thumbnail
2025/09/12
※ 首頁重點: index.html: <body> <!-- 主結構 --> <div class="wrapper"> <!-- Start main --> <section class="main"> <!-- Start jumbotron --> <div
Thumbnail
2025/09/12
※ 切版分析: 各區塊細節解析: 1. .header 頁首區 視覺焦點:Logo + 背景圖,營造品牌形象。 文字內容:包含「Rmoo Cafe」與中文標語。 設計重點: 背景圖可能使用 background-image 搭配 cover或 contain。 Logo 可用<img
Thumbnail
2025/09/12
※ 切版分析: 各區塊細節解析: 1. .header 頁首區 視覺焦點:Logo + 背景圖,營造品牌形象。 文字內容:包含「Rmoo Cafe」與中文標語。 設計重點: 背景圖可能使用 background-image 搭配 cover或 contain。 Logo 可用<img
Thumbnail
看更多
你可能也想看
Thumbnail
不是每個人都適合自己操盤,懂得利用「專業」,才是績效拉開差距的開始
Thumbnail
不是每個人都適合自己操盤,懂得利用「專業」,才是績效拉開差距的開始
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
這篇文章教你如何製作側邊欄,包括準備工作、HTML和CSS的部分,還有一些互動效果。文章涵蓋了連結、圖片、超連結、大小、顏色、排版、flex和滑鼠互動等內容。
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
在程式任何地方都能修改各種react組件狀態的做法分享
Thumbnail
在程式任何地方都能修改各種react組件狀態的做法分享
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News