# 🏅 Day 40 - 實作取得所有貼文並帶入 comment
練習整合運用先前提到的技巧:
- router
- Moogoose find()、populate()、sort()
實作出設計稿 `3-2.全體動態牆-有留言` 頁面的「取得所有貼文並帶入 comment 功能」
### 開始實作
- GET `/posts` 路由,不需登入即可觀看所有貼文
- 使用 `populate()` 關聯 comments 欄位
- 取得貼文時需要顯示使用者的名稱 `name` 與圖片 `photo`、留言的內容 `comment` 與留言的使用者 `user`
- 將取得的貼文依照 `createdAt` 排序
- 回傳成功訊息及貼文資料
依照上方需求完整以下程式碼,補上 `...` 的部分
`app.js`
```javascript=
const postsRouter = require('./routes/posts');
app.use('/posts', postsRouter);
```
`routes/posts.js`
```javascript=
router....('...', async (req, res, next) => {
const post = await Post.find()....({
path: 'user',
select: '... ...'
}).populate({
path: 'comments',
select: '... ...'
}).sort('...');
res.status(200).json({
status: 'success',
...
})
});
```
## 回報流程
將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔!
解答位置請參考下圖(需打開程式碼的部分觀看)

<!-- 解答:
`routes/posts.js`
```javascript=
router.get('/', async (req, res, next) => {
const post = await Post.find().populate({
path: 'user',
select: 'name photo'
}).populate({
path: 'comments',
select: 'comment user'
}).sort('createdAt');
res.status(200).json({
status: 'success',
post
})
});
```
-->
回報區
---
<!--
將答案貼至下方表格內,格式:
| Discord 暱稱 | [CodePen](連結) |
-->
| Discord | CodePen / 答案 |
|:-------------:|:-----------------:|
| xxx | [CodePen]() |
| 苡安 | [hackmd](https://hackmd.io/@L7K9-66lSeagS28AP0_GjQ/H1IoAlV4C) |
| Chia Pin | [CodePen](https://codepen.io/joker-cat/pen/VwOmopW) |
| wei | [CodePen](https://hackmd.io/@xu7yoa5cSsqaron7h9XhUw/SkzxGLVNA)|
| runweiting | [CodePen](https://codepen.io/weiting14/pen/RwmKrjx) |
| william威良 | [CodePen](https://codepen.io/snowman12320/pen/KKLavPG) |
| jenny7532 | [CodePen](https://codepen.io/wei-chen-wu/pen/jOoBbaG) |
| mei | [CodePen](https://codepen.io/l_umei/pen/bGyqYEp)|
| Hank | [CodePen](https://codepen.io/tw1720/pen/QWRWgex)|