Я пытаюсь создать запрос на размещение и удаление запроса со сложным массивом - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь создать запрос на размещение и удаление, но я не знаю, как это сделать с DUMMY-PLACES. Я получаю в начале (id, content), а завершенное по умолчанию - 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;

1 Ответ

0 голосов
/ 04 августа 2020

Чтобы отредактировать отдельное задание, сначала проверьте, существует ли оно на самом деле, и обновите его в соответствии с.

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

router.put("/todos", async (req, res, next) => {
  const { id } = req.body;
  delete DUMMY_PLACES[0].todos.byIds[id];
  res.sendStatus(200);  
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...