iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0

前情提要

昨天分享了如何 POST 資料就是為了今天能 GET 到我們昨天上傳的資料,而今天會分享兩種 GET 的方法,第一種是拿取所有資料,第二種是拿取特定的資料,所以如果可以的話麻煩大家再上傳一筆到兩筆資料喔!

GET 取所有的資料

  1. 在 routerStarsign.js 中創建 GET 方法,可以把舊的刪掉。

    router.get('/', async (req, res) => {
        try {
            const find = await Data.find();
            res.json(find);
        } catch(error) {
            res.json({message: error});
        };
    });
    
  2. 啟動網頁之後到 Postman 裡把網址貼上,使用 GET 方法,按下『 Send 』後就可以看到你存進資料庫的所有資料了!
    https://ithelp.ithome.com.tw/upload/images/20220912/20151565Wl1sA7GZvi.png

GET 取特定的資料

  1. 在取特定資料前先分享如何查詢他的 id,到了 Postman 後先使用取所有資料的 GET,之後就可以在回應區裡面看到資料的 id 了。
    https://ithelp.ithome.com.tw/upload/images/20220912/20151565AayOmIUvDH.png

  2. 在 routerStarsign.js 中創建另一個 GET 方法。

  router.get('/:id', async (req, res) => {
      try {
          const find = await Data.findById(req.params.id);
          res.json(find);
      } catch(error) {
          res.json({message: error});
      };
  });
  1. 啟動網頁之後到 Postman 裡把網址貼上,並在後面加上你想要的 id。以上面的圖片為例,假設我要找的 id 是 631e9cb18cd46c27d48f6f8a,則在網址後面加上 /631e9cb18cd46c27d48f6f8a 即可成功。
    https://ithelp.ithome.com.tw/upload/images/20220912/2015156577mF6HOyt8.png

程式碼講解

  1. Data.find() 可以用來查找資料,Data.findById() 可以用來查找特定資料,而因為會牽扯到資料庫因此用 async/await 包起來。

  2. /:id 關於這部份,:的作用在於讓後面的 id(不一定要叫做 id,名字可以隨便取) 變成類似一個變數,讓我們在查找資料的時候可以帶入這個變數以便搜尋。


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

尚未有邦友留言

立即登入留言