Успешно удалить объект в mongodb с помощью findByIdAndDelete, но возвращает ошибку - PullRequest
0 голосов
/ 04 августа 2020

Я использую axios.delete(`http://localhost:5001/agenda/` + item._id) для удаления элемента в массиве. Схема выглядит так:

const eventSchema = new Schema({
  _id: String,
  name: String,
  startDateTime: Date,
  endDateTime: Date,
  classes: String
});

На стороне сервера у меня есть

router.route("/:id").delete((req, res) => {
  console.log(req.params);
  Event.findByIdAndDelete(req.params.id)
    .then(() => res.jason("Event deleted."))
    .catch(err => res.status(400).json("Error: " + err));
});

После запуска этой программы в терминале появляется { id: 'aff2187e-f28a-38f8-1cb1-3cbeab97d721' }, что является значением требуемых параметров. На веб-странице отображается Unhandled Rejection (Error): Request failed with status code 400, и я не видел «Событие удалено». появился в консоли. Но когда я проверяю базу данных или обновляю sh страницу, она успешно удаляется.

После поиска в Интернете я пытаюсь изменить req.params.id на Mongoose.Types.ObjectId(req.params.id), но это не работает, так как есть некоторые ограничение для идентификатора объекта.

Понятия не имею, почему он был удален, но в то же время он возвращает ошибку.

1 Ответ

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

Похоже, вы неправильно написали res.json как res.jason

И это вызывает код go в .catch и возвращает ошибку.

...