---
# System prepended metadata

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

---

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



## 取得按讚貼文列表
### 題目

實作[此頁面](https://xd.adobe.com/view/c0763dbe-fc15-42e8-be0b-8956ed03e675-9525/screen/f4bf7d1f-0681-4645-a07c-c5ac3cd38065/)的取得使用者按讚貼文列表功能

**流程**
當使用者按讚，將按讚的使用者 ID 存到該則貼文資料 likes 陣列中，在使用者的個人頁面可以嘗試取得貼文資料中 likes 欄位含有該使用者 ID 的貼文

**實作前準備**
- 請先在貼文 posts 的 schema 中，將 likes 欄位改為以陣列呈現，陣列中的內容， type 型別更改為 `mongoose.Schema.ObjectId` 並且需來自 `User` Model 的 ObjectId
```javascript
likes: [
  { 
    type: mongoose.Schema.ObjectId, 
    ref: 'User' 
  }
],
```

- 預先新增一些測試的貼文資料以及註冊新增使用者資料，在 MongoDB Compass 將已註冊的使用者 ID 加入貼文的 likes 欄位中
:::spoiler 如圖
![](https://i.imgur.com/OWLguRc.png)

:::

--
**開始實作**
- 設計一個 GET `/users/getLikeList` 路由，需登入才能請求貼文資料
- 當使用者登入並驗證 JWT 正確，尋找資料庫中 likes 欄位包含該使用者 ID 的貼文
- 找出的貼文需顯示使用者的`name`及 `_id`
- 回傳成功訊息及貼文資料

**將程式碼片段貼至 HackMD 並回報**


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

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

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


<!-- 解答

範例參考 https://github.com/gonsakon/express-week4-sample/blob/week8/routes/users.js#L76-L88
```javascript=
// routes/users.js

const router = express.Router();
const Post = require('../models/postsModel');
const { isAuth } = require('../service/auth');

router.get('/getLikeList', isAuth, handleErrorAsync(async(req, res, next) =>{

  const likeList = await Post.find({
    likes: { $in: [req.user.id] }
  }).populate({
    path:"user",
    select:"name _id"
  });
  res.status(200).json({
    status: 'success',
    likeList
  });
}))
```

-->

回報區
---

| 報數 | 組別 / 名字    | codepen / hackMD / 其他回饋                        |
| ---- | -------------- | -------------------------------------------------- |
| 1    | 第 14 組｜East | [HackMD](https://hackmd.io/30hgTLMyR7-c3qFeREFOUA) |
| 2     |第 9 組 / konstante |[HackMD](https://hackmd.io/7yZ9QVyYRmCaRN3141A_YQ?edit)                                                    |
| 3    | 第 4 組 / 苡安 |[HackMD](https://hackmd.io/apsOwYvERkmRKx6CYzjYkQ) |
| 4    | 第 4 組 / 小宥 |[HackMD](https://hackmd.io/epbTDIp4QwiAmGoAimDa2w?both) |
| 5    | 第 5 組 @Hazel |[HackMD@Hazel](https://hackmd.io/@hazelwu/day35) |
| 6    | 第 3 組 /  hiYifang |[HackMD](https://hackmd.io/@gPeowpvtQX2Om6AmD-s3xw/BJlAbFdPc) |
| 7 | 第 2 組 | wendy [HackMD](https://hackmd.io/80FIwll1QUa4u0-WoBv-hQ#20220526)|
| 8    | 第 3 組｜Hobby | [HackMD](https://hackmd.io/@hobbyling/day35) |
| 9    | 第 12 組｜Jimmy | [HackMD](https://hackmd.io/5KORaw8oSXim8HDdp3gLng) |
| 10   | 第 11 組｜Han Lai | [HackMD](https://hackmd.io/uwEEmYhRSASMQI3lqR8eVA?view) |
| 11   | 第 16 組｜皓皓 | [HackMD](https://hackmd.io/6OyGBdsTT_aMjXfAWk7N3A) |

