在react js中,我一直在研究如何通过axios获得2个ID,我可以处理服务器端,但在客户端,我不知道如何获得它。以下是我的服务器端代码:
我有一些帖子/博客,人们也可以在上面留言。因此,评论的id按帖子的id计数:
e、 x:
id为/80的帖子有很多评论我想用它们的id更新评论:可能是这样的:posts/80/120
router.put("/:postId/:id", validateToken, async (req, res) => {
const { newCommentBody, postId, id } = req.body;
console.log("body", req.body);
await Comments.update(
{ commentBody: newCommentBody },
{ where: { id: id } }
);
console.log("postId in comment", id)
res.json("comment updated successfully!", newCommentBody, postId, id);
});
这是客户端代码:
const updateTheComment = async (postId, id) => {
const response = await axios.get(
`http://localhost:3007/comments/${id}`,
{
headers: { accessToken: localStorage.getItem("accessToken") },
}
);
console.log('getting commentBody data', response.data.commentBody)
setCommentObject({
commentBody: response.data.commentBody,
});
};
当我用postman测试它时,我使用了以下url:http://localhost:3007/comments/88/141 正如我所预料的那样。
这就是put方法:
const subNewComment = (e, postId) => {
e.preventDefault();
axios
.put(
`http://localhost:3007/comments/${postId}/${id}`,
{
newCommentBody: commentObject.commentBody,
id: id,
},
{
headers: {
accessToken: localStorage.getItem("accessToken"),
},
}
)
.then((res) => {
if (res.data.error) {
alert(res.data.error);
} else {
history.push("/");
}
});
};
任何建议都值得赞赏:
2条答案
按热度按时间abithluo1#
您的url不完整,只需添加posid即可,
http://localhost:3007/comments/${postId}/${id}
q3aa05252#
在控制器中执行此操作时,您正在读取post数据(正文):
执行此操作时,也不会推送post数据,ID是路由参数:
将控制器更改为: