سلام به همگی خسته نباشید
من به یه مشکلی خوردم ممنون میشم اگه بتونید مشکلمو حل کنید
من مجموعه ای از کتگوری ها رو دارم که میتونم به لیستم اضافه و حذفش کنم الان میخوام قابلیت ویرایش رو بهش اضافه کنم تقریبا کارای اصلیش رو انجام دادم ولی زمانی که رو فرانت اند تست میزنم به اروری میخورم
کد آپدیت کتگوری ها در کنترلر بک اند
exports.update = (req, res) => {
const category = req.category;
category.name = req.body.name;
category.save((err, data) => {
if (err) {
return res.status(400).json({
error: "Failed to update category"
});
}
res.json(data);
});
};
بک اند رو با Postman تست زدم و مشکلی نداره به درستی آپدیت میکنه
............................................
کد Api آپدیت در فرانت اند
export const updateCategory = (categoryId, userId, token, category) => {
return fetch(`${API}/category/${categoryId}/${userId}`, {
method: "PUT",
headers: {
Accept: "application/json",
Authorization: `Bearer ${token}`
},
body: category
})
.then(response => {
return response.json();
})
.catch(err => console.log(err));
};
اینم صفحه آپدیت کتگوری
import React, { useState, useEffect } from "react";
import { isAuthenticated } from "../auth";
import { Link } from "react-router-dom";
import { getCategory, updateCategory } from "./apiAdmin";
const updateCategory = ({ match }) => {
const [name, setName] = useState("");
const [error, setError] = useState(false);
const [success, setSuccess] = useState(false);
const { user, token } = isAuthenticated();
const preload = categoryId => {
getCategory(categoryId).then(data =>{
if(data.error) {
console.log(data.error);
}else{
setName(data.name)
}
});
};
useEffect(() => {
preload(match.params.categoryId);
}, []);
const handleChange = event => {
setError("");
setName(event.target.value);
};
const onSubmit = (event, value) => {
event.preventDefault();
setError("");
setSuccess(false);
updateCategory(match.params.categoryId, user._id, token, { name: value }).then(
(data) => {
if (data.error) {
setError(true);
} else {
setError("");
setSuccess(true);
setName("");
}
}
);
};
const successMessage = () => {
if (success) {
return <h4 className="text-success">Category created successfully</h4>;
}
};
const warningMessage = () =>{
if(error){
return <h4 className="text-danger">Failed to update</h4>
}
};
const myCategoryForm = () => (
<form
className="mb-3"
>
<div className="form-group">
<input
type="text"
className="form-control my-3"
onChange={handleChange}
value={name}
autoFocus
required
/>
<div className="container mt-1">
<div className="row">
</div>
</div>
</div>
<div className="action_btn offset-lg-3">
<button onClick={(e)=> onSubmit(e, name)} className="btn btn-success mt-3">Update</button>
</div>
</form>
);
return (
<div className="row">
<div
style={{
paddingTop: "40px",
paddingBottom: "40px",
width: "100%",
maxWidth: "900px",
margin: "0 auto",}}
className="col-md-8 offset-md-2"
>
{successMessage()}
{warningMessage()}
{myCategoryForm ()}
</div>
</div>
);
};
export default updateCategory;
زمانی که روی update کلیک میکنم کنسول همچین اروری میده
PUT http://localhost:8000/api/category/63937e0a8d829f1040d43b8b/637f403acc6ef006d4f2a048 400 (Bad Request)
{"error":"Failed to update category"}
خیلی ممنون از همگی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟