後端框架與API 開發(四) – 路由設定與管理

更新 發佈閱讀 4 分鐘

※ 什麼是路由?

當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。

  1. 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包能夠按照最佳路徑傳輸。
  2. 路由 (Routing):這是一個過程,路由器在這個過程中為每個資料封包選擇最佳的傳輸路徑。這個選擇路徑的過程就被稱為「路由」。
  3. 路徑 (Route):這是路由器為資料封包選擇的實際傳輸路徑。每個資料封包都會按照這個路徑從源頭傳送到目的地。

簡單來說,路由就像是一個指路人。當資料(像是一個旅行者)需要從網路的一個地方傳送到另一個地方時,路由器(指路人)會告訴資料應該走哪條路(路徑)。這個過程就像是你打電話給客服,語音總機告訴你應該按哪個號碼來找到你需要的服務。希望這個解釋能讓你更容易理解!

※ Server 端建立路由的主要用意:

在 Web 開發中,「建立路由」是一種方式,讓伺服器能夠根據客戶端的請求(例如 URL 和 HTTP 方法)來提供正確的回應和資源。這個過程涉及到在伺服器端設定一組規則,這些規則就像是一個地圖,指導伺服器如何根據客戶端的請求來找到並提供正確的資源。這就是「建立路由」的主要目的和功能。

下圖是一個「待辦事項清單 (To-do List)」的路由設計示意圖:

raw-image

※ 路由的使用情境描述:

  1. 資源類別:根據客戶端請求的是靜態資源(如 HTML、CSS、JavaScript 檔案)還是動態資源(如從資料庫獲取的資料),路由可以提供不同的回應。
  2. 資料的存取狀態:路由也可以根據 CRUD(創建、讀取、更新、刪除)操作來回應客戶端的請求。例如,客戶端可能會發送 POST 請求來創建資料,或者發送 GET 請求來讀取資料。
  3. 請求類型:根據客戶端的請求是同步還是非同步,路由也可能需要提供不同的回應。例如,對於 AJAX 的非同步請求,伺服器可能需要回傳 JSON 格式的資料。

※ 如何設計路由?

在 Web 開發中,我們通常會採用一種名為 REST(Representational State Transfer,可譯為「表現層狀態轉換」)的架構風格來設計路由。

REST 是一種軟體架構的設計風格,而不是一種標準或規格。它提供了一些原則和概念,幫助我們在設計軟體架構時能有一個明確的方向。就像我們在寫程式時,每個人都有自己的風格一樣,設計軟體架構也有許多不同的設計風格。符合 REST 原則的軟體架構,我們通常會稱之為 RESTful。

在設計路由時,我們會根據 REST 的原則來操作。例如,我們可能會為每種資源設計一個獨立的路由,並使用 HTTP 的動詞(如 GET、POST、PUT、DELETE 等)來表示對資源的不同操作。這樣,當客戶端發送請求時,伺服器就可以根據請求的 URL 和 HTTP 動詞來決定應該如何回應。

總之,路由設計的主要目的是讓伺服器能夠根據客戶端的請求來提供正確的回應和資源,而 REST 提供了一種有效的方法來達成這個目的。

RESTful 的設計以「資源」為中心,再搭配 HTTP method 的動詞,以及 CRUD 等資料操作:

raw-image

※ RESTful API 特點:

  1. URI (統一資源識別碼):這是一種標識網路上資源的方式,例如 http://example.com/resources
  2. 對資源的操作:這是通過 HTTP 的請求方法來實現的,例如 POSTGETPUT 或 DELETE
  3. 傳輸的資源:這是 Web 服務的網際網路媒體類型,例如 JSONHTMLXMLYAML 等。

※ Express 中設定路由的方式:

raw-image

把 app.js 打開,其中有一段是:

// setting the route and corresponding response
app.get('/', (req, res) => {
res.send('This is my first Express Web App')
})

app.get('/') 是用來設定路由的。其中第一個參數,要放的就是路由,也是我們預期的網址。第二個參數放的則是一個函式,告訴它要回應的內容:

raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
23會員
167內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多
你可能也想看
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ Params是什麼? 在網頁開發中,params代表的是參數(Parameters)。當你在路由(Route)中定義了一個或多個變數時,這些變數的值就會被存儲在 params 對象中。所以,params 就是用來存儲路由參數的地方,這些參數可以在處理請求時使用。 ※ Params的兩個功能:
Thumbnail
※ Params是什麼? 在網頁開發中,params代表的是參數(Parameters)。當你在路由(Route)中定義了一個或多個變數時,這些變數的值就會被存儲在 params 對象中。所以,params 就是用來存儲路由參數的地方,這些參數可以在處理請求時使用。 ※ Params的兩個功能:
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
※ 什麼是路由? 當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。 路由器 (Router):這是一種實體設備,負責將資料封包 (Packet) 從一個網路傳送到另一個網路。它的工作方式類似於交通指揮,確保資料封包
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
這次要講的是 $route 及 $router 的區別,看似相似的兩個東西,其實應用時機也大不相同,以下以簡單的幾個例子舉例。
Thumbnail
這次要講的是 $route 及 $router 的區別,看似相似的兩個東西,其實應用時機也大不相同,以下以簡單的幾個例子舉例。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News