簡體   English   中英

我正在嘗試使用復雜的數組創建放置請求和刪除請求

[英]I'm trying to create a put request and delete request with a complicated array

我正在嘗試創建一個放置請求並刪除,但我不知道如何處理 DUMMY-PLACES。我將在開始時獲得(id,內容)並且默認完成是 false(它是一個虛擬數據庫)例如 (6,test6) 當然這是 byIds 中的數字需要相同“6”

 const express = require("express"); const router = express.Router(); const DUMMY_PLACES = [ { todos: { allIds: [1, 2, 3, 4], byIds: { "1": { content: "test1", completed: false, }, "2": { content: "test2", completed: false, }, "3": { content: "test3\\", completed: false, }, "4": { content: "test4", completed: false, }, }, }, visibilityFilter: "all", }, ]; router.get("/todos", (req, res, next) => { try { const place = DUMMY_PLACES; console.log(place); res.json({ place }); } catch (err) { next({ status: 400, message: "failed to get todos" }); } // => { place } => { place: place } }); router.put("/todos/", async (req, res, next) => { const { id, content } = req.body; try { todo = DUMMY_PLACES; console.log(todo.todos); } catch (err) { next({ status: 400, message: "failed to update todo" }); } }); module.exports = router;

要編輯單個待辦事項,首先檢查它是否確實存在並相應地更新它。

router.put("/todos", async (req, res, next) => {
  const { id, content } = req.body;
  // Check if todo actually exists
  const todoExists = DUMMY_PLACES[0].todos.byIds.hasOwnProperty(id);
  if (!todoExists) {
    next({ status: 400, message: `todo with id ${id} does not exist` });
  }
  // Update todo
  DUMMY_PLACES[0].todos.byIds[id].content = content;
  res.sendStatus(200);  
});

要刪除待辦事項,請從 byIds object 中刪除密鑰

router.put("/todos", async (req, res, next) => {
  const { id } = req.body;
  delete DUMMY_PLACES[0].todos.byIds[id];
  res.sendStatus(200);  
});

暫無
暫無

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

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