當我們說「路由」時,可能是在談論路由器(實體設備),也可能是在談論路由(選擇路徑的過程),或者是在談論路徑(資料封包的傳輸路徑)。
簡單來說,路由就像是一個指路人。當資料(像是一個旅行者)需要從網路的一個地方傳送到另一個地方時,路由器(指路人)會告訴資料應該走哪條路(路徑)。這個過程就像是你打電話給客服,語音總機告訴你應該按哪個號碼來找到你需要的服務。希望這個解釋能讓你更容易理解!
在 Web 開發中,「建立路由」是一種方式,讓伺服器能夠根據客戶端的請求(例如 URL 和 HTTP 方法)來提供正確的回應和資源。這個過程涉及到在伺服器端設定一組規則,這些規則就像是一個地圖,指導伺服器如何根據客戶端的請求來找到並提供正確的資源。這就是「建立路由」的主要目的和功能。
下圖是一個「待辦事項清單 (To-do List)」的路由設計示意圖:
在 Web 開發中,我們通常會採用一種名為 REST(Representational State Transfer,可譯為「表現層狀態轉換」)的架構風格來設計路由。
REST 是一種軟體架構的設計風格,而不是一種標準或規格。它提供了一些原則和概念,幫助我們在設計軟體架構時能有一個明確的方向。就像我們在寫程式時,每個人都有自己的風格一樣,設計軟體架構也有許多不同的設計風格。符合 REST 原則的軟體架構,我們通常會稱之為 RESTful。
在設計路由時,我們會根據 REST 的原則來操作。例如,我們可能會為每種資源設計一個獨立的路由,並使用 HTTP 的動詞(如 GET、POST、PUT、DELETE 等)來表示對資源的不同操作。這樣,當客戶端發送請求時,伺服器就可以根據請求的 URL 和 HTTP 動詞來決定應該如何回應。
總之,路由設計的主要目的是讓伺服器能夠根據客戶端的請求來提供正確的回應和資源,而 REST 提供了一種有效的方法來達成這個目的。
RESTful 的設計以「資源」為中心,再搭配 HTTP method 的動詞,以及 CRUD 等資料操作:
http://example.com/resources
。POST
,GET
,PUT
或 DELETE
。JSON
,HTML
,XML
,YAML
等。把 app.js
打開,其中有一段是:
// setting the route and corresponding response
app.get('/', (req, res) => {
res.send('This is my first Express Web App')
})
app.get('/')
是用來設定路由的。其中第一個參數,要放的就是路由,也是我們預期的網址。第二個參數放的則是一個函式,告訴它要回應的內容: