# 🏅 Day 15 - req.body
若客戶端請求有 request body(像是 POST 的時候),可使用 req.body 取得 request body 的 `key: value` 資料
範例
```
POST 'http://localhost:3000/posts'
將資料帶入 request body
{
title: '貼文標題',
content: '貼文內容',
image: 'https://img-url'
}
```
```javascript
app.post('/products', async (req, res, next) => {
try {
const data = req.body; // 取得帶入的資料
if (data.content) { // 如果有資料
// 使用 mongoose 將 data 新增至資料庫
const newPost = await Post.create(
{
title: data.title,
content: data.content,
image: data.image
}
);
res.status(200).json({
status: 'success',
message: '新增成功',
});
} else {
console.log("欄位填寫錯誤")
}
} catch (error) {
console.log(error);
}
});
```
### 參考資源
- [Express - API](https://expressjs.com/zh-tw/api.html)
題目
---
請嘗試透過 POST API 的 req.body [註冊會員](https://xd.adobe.com/view/c0763dbe-fc15-42e8-be0b-8956ed03e675-9525/screen/1fc65740-4d7f-4df7-ac4d-8cf0d573f4e2/),並使用 mongoose 將資料新增至 User Model 中,成功時回傳 `${暱稱} 註冊成功`
```
資料:
{
nickname: 'Tom',
email: 'tom@mail.com',
password: 'abcd1234'
}
```
完整以下程式碼(補上 `...` 的部分):
```javascript=
app.post('/register', async (req, res) => {
try {
const data = ...;
if (nickname != '' && email != '' && password != '') {
const newUser = await ...({
nickname: ...,
email: ...,
password: ...
});
res.status(200).json({
status: 'success',
message: `...`,
});
}
} catch (error) {
console.log(error);
}
});
```
## 回報流程
將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔!
解答位置請參考下圖(需打開程式碼的部分觀看)
![](https://i.imgur.com/vftL5i0.png)
<!-- 解答:
app.post('/register', async (req, res) => {
try {
const data = req.body;
if (nickname != '' && email != '' && password != '') {
const newUser = await User.create({
nickname: data.nickname,
email: data.email,
password: data.password
});
res.status(200).json({
status: 'success',
message: `${暱稱} 註冊成功`,
});
}
} catch (error) {
console.log(error);
}
});
-->
回報區
---
<!--
將答案貼至下方表格內,格式:
| Discord 暱稱 | [CodePen](連結) |
-->
| Discord | CodePen / 答案 |
|:-------------:|:-----------------:|
| xxx | [CodePen]() |
| 苡安 | [hackmd](https://hackmd.io/@L7K9-66lSeagS28AP0_GjQ/HJnIoCBWC) |
| Aida | [CodePen](https://codepen.io/ada23410/pen/xxeMVyL?editors=0010) |
| jenny7532 | [CodePen](https://codepen.io/wei-chen-wu/pen/zYXeBaa) |
| Chia Pin | [CodePen](https://codepen.io/joker-cat/pen/poBGEjL) |
|wei|[CodePen](https://codepen.io/Wei-the-sasster/pen/MWRLbde?editors=1010)|
|群嘉|[CodePen](https://codepen.io/efzdamnp-the-lessful/pen/gOyqgjp?editors=0010)|
|william_hsu|[CodePen](https://codepen.io/william8815/pen/VwNgWXN)|
|tung030374|[CodePen](https://codepen.io/tung__u/pen/BaEMwOb)|
|Hank|[CodePen](https://codepen.io/tw1720/pen/NWmowrq)|
|Tiya|[CodePen](https://codepen.io/Tiya_blank/pen/rNbQPbY)|
|Lobinda|[CodePen](https://codepen.io/Lobinda/pen/bGJzZod)|
|ej_chuang|[CodePen](https://codepen.io/EJChuang/pen/RwOdjLE)|
|Ciel|[CodePen](https://codepen.io/nycteachen/pen/yLrraEv)|
|Henry|[CodePen](https://codepen.io/hekman1122/pen/JjVwWxR?editors=0010)|
| Fabio20 | [CodePen](https://codepen.io/fabio7621/pen/QWPROWJ?editors=1010) |
| william威良 | [CodePen](https://codepen.io/snowman12320/pen/gOyJXbv) |
| Benson | [CodePen](https://codepen.io/nosneb83/pen/LYvoOZx) |
| 瑀君 | [HackMD](https://hackmd.io/@sh5ojkmt/Hk8iN0lGC) |
| 2魚 | [CodePen](https://codepen.io/ijrekmsn-the-sans/pen/VwNJZrL) |
| albertyang3576 | [CodePen](https://codepen.io/albertyang3576/pen/zYXVdpE) |
| runweiting | [CodePen](https://codepen.io/weiting14/pen/oNOKBxj) |