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
奧莉薇走在成為後端工程師之路上
25會員
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
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
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 環境上,主要用來寫後端應用。
Thumbnail
本文章介紹了建立網頁的整個流程,包括設置 Templates, Views, Urls 等步驟。透過這些步驟,大家便能創建一個新的網頁,並成功測試。
Thumbnail
本文章介紹了建立網頁的整個流程,包括設置 Templates, Views, Urls 等步驟。透過這些步驟,大家便能創建一個新的網頁,並成功測試。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News