iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0

前情提要

在新增資料後,有時會遇到資料有錯誤或是資料要更新的情況,因此這時候就需要用到 HTTP Method PUT/PATCH 的方法,兩個方法的功能都是更新,但他們其實有些微的差異,今天的部分要先來介紹 PUT。

PUT 介紹

PUT 他是 HTTP Method 的其中一個方法,功能是更新,而只要使用 PUT 更新,就算你只是要更改其中一項,其他都沒有變動,但他整個資源還是會更新過一遍,因此 PUT 比較適用於更改的東西比較多的時候。

PUT 應用

假設說今天在新增資料時不小心把處女作的屬性填成風象星座而不是土象星座怎麼辦,那就可以使用 PUT 來更新資料解決這個問題。
https://ithelp.ithome.com.tw/upload/images/20220912/20151565sVci5BIHnj.png

  1. 首先先在 routerStarsign.js 中建立 PUT 方法。

    router.put('/:id', async (req, res) => {
         try {
            const updateData = await Data.updateOne({_id: req.params.id}, {$set: {property: req.body.property}};
            res.json(updateData);
        } catch(error) {
            res.json({message: error});
        }
    });
    
  2. 開啟網頁後把網址放到 Postman 裡,並把要改的 id 放到網址後面,最後在 body 當中填寫你要改的內容。
    https://ithelp.ithome.com.tw/upload/images/20220913/20151565h7AAZtIRnN.png

  3. 按下『 Send 』後,就可以更改成功!
    https://ithelp.ithome.com.tw/upload/images/20220913/20151565CZA02RE7FK.png

程式碼講解

  1. Data.updateOne() 是用來更新資料的方法,因為會牽扯到資料庫,因此會用到 async/await。

  2. Data.updateOne() 裡面填的參數有兩個,分別是哪個資料要改的指標和要更改的內容,而 $set 這部分一定要寫。


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

尚未有邦友留言

立即登入留言