본문 바로가기

학습노트/기초지식

How to send a request body with a DELETE request (axios)

 

  axios를 이용하여 서버와 프론트에서 데이터를 주고 받는데 get이나 put을 이용하면 body로 request를 받아올수 있지만 delete는 못받온다. 하지만 delete를 이용해서 받아오는 방법을 찾아내서 적어본다.

 

 

 

front 측

  const deletePost = (id) => {
    const posts = {
      token: localStorage.getItem("company-auth-token")
    };
    Axios.delete(`/posts/${id}`, {data:{posts: posts}})
    .then((req) => alert("삭제완료"))    
    setPost(post.filter((elem) => elem.id !== id));
  };

프론트측에서 이런 식으로 url 다음 파라미터에 {data: {보낼이름 : 보낼것} } 이렇게 보내면 서버측에서 받아올 수 있다.

 

 

server측

router.delete("/:id", async (req, res) => {
  const { id } = req.params;
  const post = await Post.findOne({ where: { id: id }});
  const token = req.body.posts.token;
  try {
    const deletePost = await Post.destroy({ where: { id: id } });
    res.status(201).json(deletePost);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

서버 측에서 보낸 것을 req.body.posts.token 이런 식으로 받아 와서 사용할 수 있다.