问题描述
当我通过邮递员发送请求时,Axios DELETE 可以工作,但在我的 React 应用程序中却没有。我正在传递 MongoDB 分配条目的 _id。我正在启动 ObjectId 但它仍然不起作用。我还仔细检查了我是否使用了正确的路线。
在我的应用程序中,我有调用 SaveBook 的点击函数。那部分我感觉还可以。如果我需要分享其他内容,请告诉我。
前端AuthActions.js中的SaveBook
- alert: "Dependency Status - {{ $labels.serviceName }} unhealthy "
expr: 100*avg_over_time(dependency_status{}[30m]) < 90
for: 1m
labels:
severity: warning
action: page
pager: pagerDutyService
annotations:
summary: "Dependency Unhealthy - Service: {{ $labels.serviceName }}"
information: "Dependency Status availability rate over 30m for service "{{ $labels.serviceName }} at {{ $value }}%"
users.js 中服务端的删除操作
export const saveBook = ({books,user,book,_id}) => {
return function () {
console.log(`This is id ${JSON.stringify(_id)}`)
const savedindex = books.indexOf(book);
if (savedindex >= 0) {
console.log(savedindex)
axios
.delete("/api/users/wishlist",{_id})
} else {
console.log(savedindex)
// console.log(`Adding ${book.book.title} to faves...`);
axios
.post("/api/users/dashboard",{book,user})
.then(console.log("success"))
.catch (err =>
json(err)
);
}
}
};
解决方法
我意识到 req.body 不是 Delete 方法的正确选择,并使用 url params/req.params 发送 _id。这很好用。
在 authActions.js 中修复了这一行
axios
.delete("/api/users/wishlist/" + _id,)
在 Users.js 中修复了这几行
router.delete('/wishlist/:id',(req,res) => {
const db = mongoUtil.getDb();
db.db("mern-auth-2").collection("savedbooks")
// .deleteOne({_id:ObjectId(req.body._id)})
.deleteOne({_id:ObjectId(req.params.id)})