오늘의 문제
- DB에 저장한 데이터 중 pixabay에서 온 이미지 url이
비어있는 문제
문제 해결
- DB에서 데이터를 가져올 때
클라이언트단에서 데이터를 한번 검사하는 함수 작성
- 만약 해당 이미지로 GET 요청 시 response가 200이 아니라면
제외 후 UI 생성
접근 방법
- 이미지 url이 비어있을 때.
어떻게 사용하기 전 미리 알 수 있을까 고민했다.
- 우리가 받아 온 image url로 GET 요청을 했을 때
응답이 200이 아닌 다른 것으로 올까? 하여 시도해봄.
- 실험해본 결과 불량 데이터는 페이지가 뜨는데
400 error
가 떳다!
해결 과정
- 이미지 존재 여부를 파악하는 함수 작성
const checkImageExists = async (url: string) => {
try {
const response = await fetch(url);
return response.status;
} catch (error) {
console.error('Error checking image existence:', error);
return false;
}
};
- DB에서 받아온 이미지 배열을 검사하기 위한 함수 작성
const isExist = async (fbData: fetchedItem[]) => {
const proceed = await Promise.all(
fbData.map(async (item: any) => {
const result = await checkImageExists(item.imgPath);
if (result === 200) return item;
else return null;
})
);
return proceed.filter((el) => el !== null);
};
찝찝한 부분
- 데이터를 저장할 때 이 과정을 실행했다면
이후 데이터를 사용할 때 로딩시간이 조금은 단축되지 않았을까 싶다🥲
느낀점
- 이번 프로젝트는 트러블 슈팅 할 것들이 많다.
새삼 재밌다.