인프런 커뮤니티 질문&답변

Jaewoong Kang님의 프로필 이미지
Jaewoong Kang

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

이미지 업로드 하는 과정에서

작성

·

248

1

앞에서 다른분이 이미 질문했던거 같은데 답글이 안달렸던거 같아서 문의 드립니다.

지금 Product의 업로드 과정이 처음에 이미지를 선택해주면, 이 과정에서 이미 서버의 저장공간 (여기선 /uploads)에 저장이 된 후, UploadProduct 컴포넌트의 맨 아래 확인 버튼을 누르면, Back-end상에 state로 저장되있던 정보들로 MongoDB에 새로운 데이터를 추가하는 걸로 이해하고 있는데요.

이미 Dropzone을 이용하여 원하는 사진을 선택하자마자 사진의 업로드는 이루지는 것이기 때문에, 사용자가 사진을 선택한 후에 나머지 form의 양식들을 다 채우지 않고 취소하거나 또는 어떠한 이유로 이 과정에서 오류가 발생한 경우에는 Back-end상에 불필요한 데이터나 남게되는듯 보입니다.

위에 사실이 맞다면, 보통 이러한 경우엔 따로 파일을 삭제하는 코드를 추가를 해주나요? 사용자가 많아질 경우엔 이러한 데이터도 나름 상당해질듯 한데요 따로 해결책이 있나요?

답변 1

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 

이 부분은 여러가지 방법으로 처리해줄수있는데

const fullFilaName = path.resolve(
process.cwd(),
"public",
"images",
oldImageName
);

fs.unlinkSync(fullFilaName);

백엔드에서 새로운 데이터를 올릴 때 위와 같은 방식으로 현재 있었던 사진을 지워줄 수 있습니다!

Jaewoong Kang님의 프로필 이미지
Jaewoong Kang
질문자

감사합니다~

Jaewoong Kang님의 프로필 이미지
Jaewoong Kang

작성한 질문수

질문하기