---
# System prepended metadata

title: "\U0001F3C5 Day 19"
tags: [Node.js 直播班 - 2022 春季班]

---

---
tags: Node.js 直播班 - 2022 春季班
---
# 🏅 Day 19



## 取得資料搭配 sort()、limit()


Mongoose 的 `sort()`  可使用物件寫法
```
sort({ field: 'asc', test: -1 }) 
// field 欄位以升序排列，test 欄位以降序排列
```
，也可只帶入欄位名稱（欄位名稱前加上 - 代表降序排列）
```
query.sort('field -test');
// field 欄位以升序排列，test 欄位以降序排列
```

Mongoose 的 `limit()` 可直接帶入數字，如：`.limit(20)` 代表最多呈現 20 筆資料


### 參考資源

[Query.prototype.sort()](https://mongoosejs.com/docs/api/query.html#query_Query-sort)
[Query.prototype.limit()](https://mongoosejs.com/docs/api/query.html#query_Query-limit)

[query - 取得網址參數](https://courses.hexschool.com/courses/1670869/lectures/39299606)（章節影片）

### 題目（將答案寫在 HackMD 並提交至回報區）

在 GET posts 網址列帶入排序及限制筆數的參數
並運用 Express 提供的 req.query 取得網址列的參數，將尋找到符合的資料設定排序及呈現指定資料數量

提交範例
```javascript

// routes/posts.js

router.get('/', async function(req, res, next) {
  // 使用三元運算子判斷是否為 asc (由舊至新)，若是則由舊至新排列，否則由新至舊排列
  const timeSort = 
  // 帶入網址列的參數
  const limit = 
  const post = await Post.find()/* 請填入答案 */
  res.status(200).json({
    status: 'success',
    data: {
      post
    }
  });
})
```
可自行建立專案或使用先前提供的[專案](https://github.com/dogwantfly/express-add-post)測試是否正確運作

回報流程
---
請同學依照下圖教學觀看解答、回報答案:

![](https://i.imgur.com/QtL8zEW.png)

回報格式：請在「回報區」貼上 CodePen 或 HackMD 連結回報答案 (為了統計人數，請同學依序加上「報數」)


<!-- 解答
```javascript
router.get('/', async function(req, res, next) {
  const timeSort = req.query.timeSort === 'asc' ? 'createdAt' : '-createdAt';
  const limit = req.query.limit;
  const post = await Post.find().sort(timeSort).limit(limit);
  res.status(200).json({
    status: 'success',
    data: {
      post
    }
  });
})
```

-->

回報區
---

| 報數 | 組別 / 名字          | codepen / hackMD / 其他回饋                                   |     |
| ---- | -------------------- | ------------------------------------------------------------- | --- |
| 1    | 第 6 組 / Wendy      | [HackMD](https://hackmd.io/@0k_MSPdgRPujozP6w_D-bA/r187OLy85) |     |
| 2    | 第 4 組 / 小宥       | [HackMD](https://hackmd.io/QphgkEH0Szy0P7s3F8hYog)            |     |
| 3    | 第 3 組 / HedgehogKU | [HackMD](https://hackmd.io/guu5z7FgQCixtW6qR-FswA)            |     |
| 4    | 第 8 組 / Hank       | [HackMD](https://hackmd.io/@hank-hsiao/S1oyCD18c)             |     |
| 5    | 第 3 組 /  hiYifang  | [HackMD](https://hackmd.io/@gPeowpvtQX2Om6AmD-s3xw/ryrhdUASq) |     |
| 6    | 第 2 組 / Vic        | [HackMD](https://hackmd.io/mvzGJFysSN-hMwj82EJrsA)            |     |
| 7    | 第 4 組 / sihle      | [HackMD](https://hackmd.io/@bugbug777/rkO3YK1Uc)              |     |
| 8    | 第 14 組｜East       | [HackMD](https://hackmd.io/eKHHio00RO2c0-GV9x6KBA)            |     |
| 9    | Naiky                | [HackMD](https://hackmd.io/@UWBC7rrORiKaLSBg226mZg/r1WCoYJ89) |     |
| 10   | 第 5 組 / Nap        | [HackMD](https://hackmd.io/@8x8YzkXNSzafUSO3LZTmUw/HyqKEn189) |     |
| 11   | 第 4 組 / 苡安       | [HackMD](https://hackmd.io/nRb39sHwSeGuOh47lES-qA)            |     |
| 12   | 第 5 組 / Hazel      | [HackMD@Hazel](https://hackmd.io/@hazelwu/day19)              | )   |
| 13   | 第 11 組 / Han Lai   | [HackMD](https://hackmd.io/kpHx1QcXSym_iZv2HO9RBg)            |     |
|14    |第 9 組 / konstante   |[HackMD](https://hackmd.io/82HZdxBHSTqzhrPfxZiung)                                                               |     |
| 15 | 第 9 組 / 黃士桓 | [HackMD](https://hackmd.io/RNwKlCA6RBy4sUO1HcHLfA) |
| 16 | 第 2 組 / wendy.li | [HackMD](https://hackmd.io/jSWzXhpeRh25AzKCYwJ_yg)|
| 16 | 第 2 組 / Jin | [HackMD](https://hackmd.io/eklcKwvzR1-ZvC1h6CrkQQ)|
| 17 | 第 3 組 / Justin | [HackMD](https://hackmd.io/9U4BmmFhSs6JQ-AZ7Fhwvg)|
| 18 | 第 7 組 / 程翔 | [HackMD](https://hackmd.io/NxjMQl3dQcqGzHiHN7pd9g?both)|
| 19 | 第 3 組 / Hobby | [HackMD](https://hackmd.io/@hobbyling/day19)|
| 20 | 第 2 組 / joe chang | [HackMD](https://hackmd.io/uaRTw9c0TgOrADyXMmGL0Q?view#54---sort%E3%80%81limit)|
| 21 | 第 1 組 / Claire | [HackMD](https://hackmd.io/t4oE4-4VQd-JABFb_23zBQ)|
|22|第13組 /kfc |[HackMD](https://hackmd.io/8Wmatwi4RXKBiSuvtFzL8w?view)|
| 23 | nick6303 | [HackMd](https://hackmd.io/Qpm524O4SJiDWaDZotz-ww)
| 24 | 第 15 組 / Chiu | [HackMD](https://hackmd.io/ImcBQgLqSPaqdI3L-Wcj6w)|
| 25 | 第 2 組 / Rikkubook | [HackMD](https://hackmd.io/guvnfnM8RriccBqth2Qn2A?both)|
| 26 | 第11 組 / mandy | [HackMD](https://hackmd.io/h2G86JaWSZa_qqS0TXa4MA?view)|
| 27 | 第 1 組 / Ed Huang | [HackMD](https://hackmd.io/7H5j7DsdRpaM34uLKpzLVQ?view)|
| 28 | 第 2 組 / peter | [HackMD](https://hackmd.io/@peterchen1024/BkzxIvUL5)|
| 29 | 第 12 組 / Jimmy | [HackMD](https://hackmd.io/WZ413c1fRhSkvQqaLUW5HA)|
| 30 | 第 10 組 / Otis | [HackMD](https://hackmd.io/unki_keHS-2lqUWAkCj1pQ?view)|
| 31 | 第 7 組 / jason06286 | [HackMD](https://hackmd.io/Jt_7V7MCSImQ4nojUUmjlw)|
| 32 | 第 3 組 / 小葉 | [HackMD](https://hackmd.io/@FyKv37KcRSWqAO_e336w8g/r1XIg_yvq)|
| 33 | 第 16 組 / 皓皓 | [HackMD](https://hackmd.io/@cutecat8110/ByQNNijwq)|
| 34 | 第 15 組 / yolala | [HackMD](https://hackmd.io/_FA3ZbVZSBOSXNgtQBEc-w)|



