iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

我們今天要先來實作POST的部分,因為我們的資料庫還沒有資料,所以要新增一些資料進去。
我們在建立post這個route之前要先加兩行程式碼進來,把它們放到const app = express()的下面

app.use(express.json());
app.use(express.urlencoded({ extended }));

簡單來說,這兩行程式碼的目的是將請求的內容解析並轉換為可讀取的格式,以便應用程式能夠對其進行處理。
接著就是我們的post route

app.post("/animals", async (req, res) => {
  try {
    let { name, age, species } = req.body;
    let newAnimal = new Animal({
      name: name,
      age: age,
      species: species,
    });


    let savedAnimal = await newAnimal.save();
    return res.send({
      msg: "資料儲存成功",
      savedObject: savedAnimal,
    });
  } catch (e) {
    return res.status(500).send("儲存資料發生錯誤");
  }
});

解說:
當收到 POST 請求時,該路由處理函式會嘗試解構 req.body 對象,獲取請求主體中的 nameagespecies 屬性的值。
接下來,它創建了一個新的 Animal 物件,並將從請求獲取的屬性值分配給對應的屬性。
然後,它使用 await newAnimal.save() 將新的 Animal 物件保存到資料庫中,並獲取保存後的物件。
最後,它回應一個 JSON 物件,其中包含成功訊息和保存後的物件。
如果在處理過程中發生錯誤,它會回應一個 HTTP 狀態碼為 500 的錯誤回應。
這段程式碼可以將收到的 POST 請求中的資料存儲到資料庫中,並回應相應的訊息給客戶端。

最後到Postman把HTTP method 改成Post,然後打上這個網址,還有在body輸入這些屬性
https://ithelp.ithome.com.tw/upload/images/20230916/20161799f2Kok5hpq4.png
最後就會看到成功畫面。
https://ithelp.ithome.com.tw/upload/images/20230916/20161799fHQqlNMpbX.png
這邊建議大家可以多多新增資料試試看!


上一篇
day22 - Postman
下一篇
day24 - GET
系列文
一起進入網頁後端的世界吧 Restful Api 啟動 !30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言