尝试创建新帖子时出现“500 内部服务器错误”。是什么导致了这个问题?怎么解决?
CreatePost.jsx
const handleSubmit = async (e) => {
e.preventDefault();
if (form.prompt && form.photo) {
setloading(true);
try {
const response = await fetch("http://localhost:8080/api/v1/post", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(form),
});
const data = await response.json();
// alert("Success");
navigate("/");
} catch (error) {
alert(error);
} finally {
setloading(false);
}
} else {
alert("Please Enter a prompt / Generate an Image.");
}
};
这里,我展示的是帖子
<div className="mt-18">
{loading ? (
<div className="flex justify-center items-center">
<Loader />
</div>
) : (
<>
{searchText && (
<h2 className="font-medium text-[#666e75] text-xl mb-3 ">
Showing results for
<span className="text-[#1b1c20]">{searchText}</span>
</h2>
)}
<div
className="grid lg:grid-cols-4 sm:grid-cols-3 xs:gird-cols-1
grid-cols-1 gap-3 "
>
{searchText ? (
<RenderCards data={[]} title="No Search results found" />
) : (
<RenderCards data={allPosts} title="No Post Found" />
)}
</div>
</>
)}
</div>
试图只渲染一个帖子,它仍然给出相同的 500 内部错误。请帮帮我。
服务器代码
// GET ALL POSTS
router.route("/").get(async (req, res) => {
try {
const posts = await Post.find({});
res.status(200).json({ success: true, data: posts });
} catch (error) {
res.status(500).json({ success: false, message: error });
}
});
// CREATE A POST
router.route("/").post(async (req, res) => {
try {
const { name, prompt, photo } = req.body;
const photoURL = await cloudinary.uploader.upload(photo);
const newPost = await Post.create({
name,
prompt,
phot: photoURL.url,
});
res.status(201).json({
success: true,
data: newPost,
});
} catch (error) {
res.status(500).json({ success: false, message: 'Unable to create a post, please try again' `enter code here`});
}
});
这是服务器错误,所以我们需要查看该路由的服务器代码,而不是客户端代码。