第五部分 – 動態區段
如果您將滑鼠懸停在提醒事項上,您會看到一個「X」圖示彈出。如果您點擊它,您將會刪除該提醒事項 – 除非您查看主控台,否則您會看到一個錯誤
Mirage:您的應用程式嘗試刪除 '/api/reminders/1',但沒有定義處理此請求的路由。
那是因為我們還沒有模擬這個 DELETE 請求。現在就來做吧。
我們需要在我們的 URL 中使用動態區段,因為 DELETE 請求可以發送到 /api/reminders/1
、/api/reminders/2
等。
將這個新的路由處理器新增到您伺服器的 routes()
this.delete("/api/reminders/:id", (schema, request) => {
let id = request.params.id
return schema.reminders.find(id).destroy()
})
在 /api/reminders/:id
中的冒號 :
是我們如何在 URL 中表示動態區段。我們可以透過 request.params.id
存取區段的執行階段值。然後我們使用 schema
來找到對應的提醒事項,然後對其呼叫 destroy()
以從 Mirage 的資料庫中移除它。
重新載入您的應用程式並嘗試刪除一個提醒事項。您應該會看到 204 成功的響應,如果您導覽到「關於」再返回,從新的 GET 呼叫到 /api/reminders
所回傳的資料將不包含您已刪除的提醒事項。
重點整理
- 使用
:segmentName
在路由處理器的 URL 中定義動態區段 - 透過
request.params.segmentName
存取動態區段 - 使用
schema.*
方法(例如destroy()
)來維護資料完整性