---
# System prepended metadata

title: Day 12 &13 & 14 - 設計基本路由

---

# Day 12 &13 & 14 - 設計基本路由

-   `app` 是 `express` 的實例。
-   `METHOD` 是 [HTTP 要求方法](http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol)（GET、POST ...）。
-   `PATH` 是伺服器上的路徑。
-   `HANDLER` 是當路由相符時要執行的函數。

### 路由進階管理
可以將有相關的路由拆分至另一個檔案管理，以上方 `user/*` 為例，將檔案結構變為如下：
```
- app.js
- routes/     // 存放關於路徑的檔案
  |- user.js  // 和使用者相關的路徑
```

![螢幕擷取畫面 2024-04-29 180934](https://hackmd.io/_uploads/H1oLMep-R.png)


![螢幕擷取畫面 2024-04-29 180948](https://hackmd.io/_uploads/SyLDGxaWR.png)

延續前一天，當我們要取得特定貼文的資料的時候就會需要使用到該貼文的 id，而每個貼文都有自己的 id，此時就可以設計成動態路由：

![螢幕擷取畫面 2024-04-29 181954](https://hackmd.io/_uploads/BJNdExT-0.png)

除了先前使用 req.params 取得動態路由外，也可在 url 帶入相關資訊，再使用 req.query 取出網址列的參數

舉例：/posts?page=1&count=10 （貼文頁面篩選第一頁前 10 筆資料）
其中 ? 用來連接欲帶入的參數 page 及 count，= 前後分別為參數名稱（page）與參數的值（1），不同參數之間使用 & 分隔

當使用者造訪此網址時， express 可以使用 req.query 取出網址列的這些參數

![螢幕擷取畫面 2024-04-29 183800](https://hackmd.io/_uploads/HJIltgpZ0.png)
