Я возился с той же ошибкой, код отлично работает для добавления, получения и удаления записей, но выдает ошибку Почтальону, когда я пытаюсь отправить запрос на обновление. Одна и та же ошибка преобладает как у Почтальона, так и у Бессонницы.
const router = require("express").Router();
let Exercise = require("../models/exercise.model");
router.route("/").get((req, res) => {
Exercise.find()
.then(exercises => res.json(exercises))
.catch(err => res.status(400).json("Error: " + err));
});
router.route("/add").post((req, res) => {
const username = req.body.username;
const description = req.body.description;
const duration = Number(req.body.duration);
const date = Date.parse(req.body.date);
const newExercise = new Exercise({
username,
description,
duration,
date
});
newExercise
.save()
.then(() =>
res
.json("Exercise added!")
.catch(err => res.status(400).json("Error: " + err))
);
});
router.route("/:id").get((req, res) => {
Exercise.findById(req.params.id)
.then(exercise => res.json(exercise))
.catch(err => res.status(400).json("Error: " + err));
});
router.route("/:id").delete((req, res) => {
Exercise.findByIdAndDelete(req.params.id)
.then(() => res.json("Exercise deleted."))
.catch(err => res.status(400).json("Error: " + err));
});
router.route("/update/:id").post((req, res) => {
Exercise.findById(req.params.id)
.then(exercise => {
exercise.username = req.body.username;
exercise.description = req.body.description;
exercise.duration = Number(req.body.duration);
exercise.date = Date.parse(req.body.date);
exercise
.save()
.then(() => res.json("Exercise Updated!"))
.catch(err => res.status(400).json("Error: " + err));
})
.catch(err => res.status(400).json("Error: " + err));
});
module.exports = router;
Тело для POST:
{
"username": "Omer Mustafa",
"description": "Walk",
"duration": "120",
"date": "2019-10-07T11:19:09.424Z"
}
Я следую руководству по эксперименту по созданию простого приложения mern: https://www.youtube.com/watch?v=7CqJlxBYj-M