분기처리

yellowbutter·2023년 8월 28일

에러⚒️

목록 보기
1/4
post-thumbnail

간단히 정리하는 오늘의 시행착오 & 에러 해결! 🧑‍💻
이번주, 저번주 입장객 수를 백엔드에서 받아서 관리자 페이지에서 표로 보여주고 있다.

문제상황

이번주에 입장한 고객 수 데이터를 받아올때
'url/$ { 이번주 시작 날짜(월요일) }/${어제 날짜}' 로 받아오고 있었다.
화요일이면 월요일 방문객 수를 ,목요일이면 수요일까지 쌓인 방문객 데이터 수를 보여줘야한다.

데이터 호출 시 조건

  1. 이번주 입장객 수 데이터는 '한 주'를 기준으로 하기 때문에 시작일이 월요일이고 마지막 날이 일요일이다.
  2. 'url/${이번 주 시작 날짜(월요일)}/ ${어제 날짜}'로 받아와야 한 주마다 일별로 축적되는 데이터를 계산할 수 있다.

=> 그래서 월요일일 경우에는 한 주의 시작이므로, 처음 데이터를 0으로 강제로 부여야해야한다. 데이터 내 해당 배열의 값들을 모두 0으로 처리해서 저장했다.

처음에는 월요일 데이터 값을 생각하지 못하고 로직을 짰는데, 분기처리를 잘못했음을 깨닫고 바로 수정했다.

const fetchDataFromUrls = async () => {
const isMonday = new Date().getDay() === 1; // 월요일일 경우

const setHistoryData = (index, data) => {
  switch (index) {
    case 0:
      setThisWeekHistory(data);
      break;
    case 1:
      setLastWeekHistory(data);
      break;
    case 2:
      setLastYearHistory(data);
      break;
  }
};

try {
  for (let i = 0; i < urls.length; i++) {
    const response = await axios.get(urls[i]);
    const responseData = response.data;

    if (responseData !== undefined) {
      if (isMonday) {
        if (i === 0) {
          setHistoryData(i, [
            { vis_branchcode: 'A', vis_totalcnt: '0' },
            { vis_branchcode: 'B', vis_totalcnt: '0' },
            { vis_branchcode: 'C', vis_totalcnt: '0' },
            { vis_branchcode: 'D', vis_totalcnt: '0' },
            { vis_branchcode: 'E', vis_totalcnt: '0' },
            { vis_branchcode: 'F', vis_totalcnt: '0' },
            { vis_branchcode: 'G', vis_totalcnt: '0' },
          ]);
        } else {
          setHistoryData(i, responseData);
        }
      } 
    }
  }
} catch (error) {
  console.error('Error fetching data:', error);
}
};



profile
기록은 희미해지지 않는다 🐾🧑‍💻

0개의 댓글