В настоящее время я прохожу курс Full Stack Web Developer Bootcamp, и мне было поручено создать мое первое приложение MERN Stack с использованием операций CRUD.
При обновлении отдельного элемента я получаю следующую ошибку:
TypeError: {(intermediate value)} is not a function
Мой код выглядит следующим образом:
- Сервер: carsController.js:
exports.updateOneController = (req, res) => {
Car.findByIdAndUpdate(
req.params.id,
{ new: true }({
$set: {
Model: req.body.Model,
Make: req.body.Make,
Owner: req.body.Owner,
Registration: req.body.registration,
Address: req.body.Address,
previousOwners: req.body.previousOwners,
},
})
);
Car.save()
.then((cars) => res.json(cars))
.catch((err) => res.status(400).json("Error updating the car." + err));
};
- Сервер: carsRouter.js:
router.put("/updateOne/:id", cars.updateOneController);
- Клиент: carEdit.js:
const updateOne = (e) => {
e.preventDefault();
axios
.put(`cars/updateOne/${id}`, {
method: "PUT",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify({
Model: Model,
Make: Make,
Owner: Owner,
Registration: Registration,
Address: Address,
previousOwners: previousOwners,
}),
})
.then((response) => {
Swal.fire({
imageUrl: "./images/success.gif",
imageWidth: 150,
imageHeight: 150,
imageAlt: "Error",
confirmButtonColor: "#007aff",
width: 400,
title: "SUCCESS!",
});
setCars(response.data);
})
.catch((error) => {
console.log(error);
Swal.fire({
imageUrl: "./images/exclamation.gif",
imageWidth: 150,
imageHeight: 150,
imageAlt: "Error",
confirmButtonColor: "#ff0000",
width: 400,
title: "ERROR!",
text: "User data missing",
}).then(function () {
window.location.reload();
});
});
};
<Button
type="button"
title="Update a Car"
onClick={(e) => updateOne(e)}
>
<FontAwesomeIcon icon={faEdit} />
<span id="editone">x1</span> Update
</Button>
Я не уверен, является ли это конфликтом между findByIdAndUpdate() и save()?
Ссылка на репозиторий GitHub: https://github.com/ChanBos/MERN-Cars-Database-Application
Большое вам спасибо за вашу помощь. Это помогло устранить ошибку. Я тоже использую VS Code. Я буду первым, кто признает, что мне нужно работать над своими навыками отладки. Мое приложение не показывало никаких проблем в VS Code и я наивно предполагал, что с синтаксисом все в порядке. Я постараюсь улучшить эти навыки, а не полагаться исключительно на Beautify, Prettier или им подобные. Хорошего дня впереди.