如何获取更新和删除端点以在我的React App中正常运行?
因此,我有一个简单的React CRUD应用程序,该应用程序具有Node / Express后端,并且正在对数据库使用MongoDB。我可以使用fetch发出GET
请求,该请求显示来自后端的所有数据。而且我可以使用POST
在数据库中创建新记录,但不能使用PUT
和DELETE
。
首先是我的控制器和从后端路由。
/*
controllers
*/
const updateStudent = (req, res) => {
// Validate Request
if (!req.body.email) {
return res.status(400).send({
message: "This student is not enrolled",
});
}
Student.findByIdAndUpdate(
req.params.id, {
$set: req.body,
}, {
new: true
}
)
.then((student) => {
if (!student) {
return res.status(404).send({
message: "Student not found with Student ID " + req.params.studentId,
});
}
res.send(student);
})
.catch((err) => {
if (err.kind === "ObjectId") {
return res.status(404).send({
message: "Student not found with Student ID " + req.params.studentId,
});
}
return res.status(500).send({
message: "Error updating note with Student ID " + req.params.studentId,
});
});
};
const deleteStudent = (req, res) => {
Student.findByIdAndRemove(req.params.id, function(err) {
if (err) return next(err);
res.send("Deleted successfully!");
});
};
/*
routes
*/
router.put("/students/:id", updateStudent);
router.delete("/students/:id", deleteStudent);
回答如下:请将获取方法更改为大写,这可能适合您。方法:“删除”,应替换为方法:“删除”,放置也应相同。
如何获取更新和删除端点以在我的React App中正常运行?
因此,我有一个简单的React CRUD应用程序,该应用程序具有Node / Express后端,并且正在对数据库使用MongoDB。我可以使用fetch发出GET
请求,该请求显示来自后端的所有数据。而且我可以使用POST
在数据库中创建新记录,但不能使用PUT
和DELETE
。
首先是我的控制器和从后端路由。
/*
controllers
*/
const updateStudent = (req, res) => {
// Validate Request
if (!req.body.email) {
return res.status(400).send({
message: "This student is not enrolled",
});
}
Student.findByIdAndUpdate(
req.params.id, {
$set: req.body,
}, {
new: true
}
)
.then((student) => {
if (!student) {
return res.status(404).send({
message: "Student not found with Student ID " + req.params.studentId,
});
}
res.send(student);
})
.catch((err) => {
if (err.kind === "ObjectId") {
return res.status(404).send({
message: "Student not found with Student ID " + req.params.studentId,
});
}
return res.status(500).send({
message: "Error updating note with Student ID " + req.params.studentId,
});
});
};
const deleteStudent = (req, res) => {
Student.findByIdAndRemove(req.params.id, function(err) {
if (err) return next(err);
res.send("Deleted successfully!");
});
};
/*
routes
*/
router.put("/students/:id", updateStudent);
router.delete("/students/:id", deleteStudent);
回答如下:请将获取方法更改为大写,这可能适合您。方法:“删除”,应替换为方法:“删除”,放置也应相同。
与本文相关的文章
评论列表 (0)
- 暂无评论