이미지 & 텍스트 업로드 완성

먼저 upload시에 이미지로 인해 전송되는 data의 형식이 multipart/formData로 변경되었기 때문에

이전에 구현한 게시글 업로드를 수정해주어야 합니다.

PostForm.js에 가서 submit함수를 수정해볼까요

  const onSubmit = () => {
    //게시글 없으면 경고
    if (!text || !text.trim()) {
      return alert("게시글을 작성하세요");
    }
    const formData = new FormData();
    imagePath.forEach((q) => {
      formData.append("image", q); //키가 image 백에서 req.body.image
    });
    formData.append("content", text); //키가 content 백에서 req.body.content
    //이미지가 없으면 formData를 쓸 필요가 없지만, multer nono을 써보기 위해
    dispatch({ type: ADD_POST_REQUEST, data: formData });
  };
  
  //data:{image:~~~~, content:~~~~~};

이런식이라고 봐도 무방합니다.

백앤드 라우터에서는 아까 만든 upload에 none()이라는 매소드를 사용할 것입니다.

전에 작성한 이미지 업로드용 라우터는 남겨두고 게시글 작성 라우터를 수정하는 것입니다!

사람들이 가끔 DB에 이미지를 올리지 왜 서버에 올릴까? 라고 생각하는 사람들도 있는데,

이는 DB에 이미지를 업로드 하게되면 DB처리속도가 매우 느려지게 되며,

이미지와 같은 파일들은 캐싱이 가능한데 , DB에 업로드하게 된다면 캐싱이 불가능해집니다.

그런 이유로 DB에는 경로만 적어주고 , 경로를 보내주는 것입니다.

Last updated

Was this helpful?