簡體   English   中英

POST 請求到 PUT 請求

[英]POST Request to PUT Request

" 我正在參加的一門開源課程對全棧開發有以下提示: 3.17 : Phonebook database, step5 如果用戶嘗試為姓名已經在電話簿中的人創建新的電話簿條目,前端將嘗試更新通過向條目的唯一 URL 發出 HTTP PUT 請求來獲取現有條目的電話號碼。修改后端以支持此請求。在進行更改后驗證前端是否正常工作。” *

這似乎需要在 app.post 請求中調用一個快速的 app.put 請求。 有什么我在這里想念的嗎? 你如何用 mongoDB/mongoose/expresss 處理這種邏輯? 我當前的郵政編碼粘貼在下面。

謝謝

app.post('/api/persons',(req,res) => {
  const body = req.body
  const containsNameNumber = body.name && body.number

  if(!containsNameNumber){
    return res.status(400).json({
      error:"must specify a name and a number"
    })
  }

  const phone = new Person({
    name: body.name,
    number:body.number
  })

  phone.save().then(savedPerson => {
      res.json(savedPerson)
    })
})

我認為您誤解了一件事,請檢查RFC7231 中的PUT定義

PUT方法請求創建目標資源的狀態或替換為由包含在請求消息有效負載中的表示定義的狀態

重要的是“創建”部分。 因此,對於PUT如果資源存在,它將被更新,但如果不存在,則將被創建。

如果目標資源沒有當前的表示並且PUT成功創建了一個,那么源服務器必須通過發送201 (Created)響應來通知用戶代理。

所以你只需要做一個PUT調用並檢查是否存在更新(返回200 Ok )或不存在創建(返回201 Created )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM