본문 바로가기
프로젝트/코드스테이츠 - 4주프로젝트

URL.createObjectURL()은 formData를 url로 바꿔준단걸 몰라서 겪은 에러

by 안뇽! 2021. 12. 9.
반응형

클라이언트에러 : 타입에러

사진업로드 기능을 이용하다가 다음과 같은 에러를 만났다.

URL.createObjectURL 은 formData를 url로 바꿔주는 메소드이다.(오늘알게되었다. 이 에러덕분에 !)

때문에 저 imgURL에느 반드시 formData형식의 데이터가 할당되어야 한다.

formData일때는 type이 object이고 url일때는 type이 string이다.

 

type에 따라 분기해주었다.

 

그리고 추가할점으로

이 코드에서는 메모리누수 warning이 뜨지 않았는데, 아래와 같이 꼭 메모리누수 방지하는 코드를 써주어야 한단다.

 

mdn에 따르면 URL.createObjectURL()은 잠재적인 메모리누수 가능성을 내포하고 있다고 한다.

때문에 URL.revokeObjectURL() 를 이용하여 URL.createObjectURL()로 생성한 객체 URL을 해제하는 작업이 꼭 필요하다.

 

객체 URL을 더는 쓸일이 없을때 사용해서 브라우저가 이제 해당 객체를 메모리에 들고있지 않아도 된다고 말해주는 것이라고 한다.

 

warning은 뜨지 않았지만 적어주었다.


서버에러 : 응답후에도 코드가 실행되기 때문에 생기는 에러

아래 에러또한 간단하다.

다음코드에서 res.status(400)응답을 보내준후에도 코드가 진행된다.

다음과 같이 res.status(400)을 리턴하여 함수를 끝내니 해결되었다.

반응형