iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0

前情提要

經過了前面簡單的應用後,終於正式要來使用 POST 了,今天會和大家分享如何使用 POST。

應用

  1. 在 routerStarsign.js 中導入 Data.js,也就是建立資料庫綱目的 JS 檔。
const Data = require('./Data');
  1. 重新寫一個 POST,舊的可以刪掉,並且創立時要使用到 async,因為裡面會用到 await。
router.post('/', async(req, res) => {
    const post = new Data({
        starsign: req.body.starsign,
        property: req.body.property,
        startDate: req.body.startDate,
    endDate: req.body.endDate
    });
    
    try {
        const savedPost = await post.save();
        res.json(savedPost);
    } catch(error) {
        res.json({message: error});
    }   
});
  1. 啟動網頁之後到 Postman 裡把你的網址貼進去,點選 POST,並在昨天說的 body 裡打上資料。
{
    "starsign": "Cancer",
    "property": "water",
    "startDate": "6月22日",
    "endDate": "7月22日"
}
  1. 按下『 Send 』後,就可以在回應區看到你存進去的資料。
    https://ithelp.ithome.com.tw/upload/images/20220912/20151565t30AcMKCsT.png

  2. 這時候資料應該也存進你的資料庫,因此可以打開你的 MongoDB Atlas 帳號,進去後應該就會看到你剛剛新增的一筆資料,這樣你就大功告成啦!
    https://ithelp.ithome.com.tw/upload/images/20220912/20151565FVTqX514fi.png

程式碼講解

  1. 在第二部中,new Data() 的作用是在指定哪些資料要放進資料庫裡。

  2. 在第二部中,post.save() 的作用是把資料存進資料庫中,而因為此方法會牽扯到 Promise,因此用 async/await 包起來。

  3. 在第六步中,可以在回應區看到存進去的資料是因為有在 router.post() 裡面設定 res.json(),也就是回應存進去的 JSON 資料這樣。


上一篇
Day20 - POST 簡單應用
下一篇
Day22 - GET 應用
系列文
用Node.js建立專屬於你的API吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言