如何通过axios在reactjs中获取多id?

gfttwv5a  于 2021-10-10  发布在  Java
关注(0)|答案(2)|浏览(341)

在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("/");
    }
  });

};
任何建议都值得赞赏:

abithluo

abithluo1#

您的url不完整,只需添加posid即可, http://localhost:3007/comments/${postId}/${id}

q3aa0525

q3aa05252#

在控制器中执行此操作时,您正在读取post数据(正文):

const { newCommentBody, postId, id } = req.body;

执行此操作时,也不会推送post数据,ID是路由参数:

const response = await axios.put(
  `http://localhost:3007/comments/123/234`,
  {
    headers: { accessToken: localStorage.getItem("accessToken") },
  }
);

将控制器更改为:

router.put("/:postId/:id", validateToken, async (req, res) => {
  const { newCommentBody } = req.body;
  const { postId, id } = req.params;
  console.log("body", req.body);
  console.log("params", req.params);
...

相关问题