Thunder Client와 Postman에서 아무런 문제 없이 작동하던 API 가
프론트엔드 페이지 연결 후 브라우저에선 제대로 동작하지 않는 문제가 발생했다.
원인은 Data type.
Thunder Client, Postman 실행시에는
Date type끼리의 덧셈뺄셈 연산, Date type과 Number type의 연산이 모두 무리없이 실행되었는데,
브라우저 환경에서 실행한 결과 위의 연산들이 제대로 수행되지 않고 NaN을 반환하였다.
그래서 아래와 같이, 연산 전에 각 변수의 type을 알맞게 설정하도록 코드를 수정했더니 정상적으로 작동하고 있다.
// 수정 전: 서로 다른 Data type 끼리 연산을 시켰음. Thunder Client, Postman 에서는 작동하나
// 정작 중요한 브라우저 환경에서는 연산들이 제대로 수행되지 않음. (NaN 반환)
const openDays = (closeAt - openAt) / 86400000 + 1;
let Vacancy = {};
for (let i = 1; i <= openDays; i++) {
let humanDate = new Date(openAt + 86400000 * (i - 1));
Vacancy[humanDate] = true;
}
// 수정 후 : 연산 전에 각 변수의 Data type을 맞추도록 수정함. 브라우저에서도 정상 작동.
const openAtDate = new Date(openAt)
const closeAtDate = new Date(closeAt)
const openDays = (closeAtDate - openAtDate) / 86400000 + 1;
let Vacancy = {}
for (let i = 0; i < openDays; i++) {
let plusMilliseconds = 86400000 * i
let humanDate = new Date(Date.parse(openAtDate) + plusMilliseconds);
Vacancy[humanDate] = true;
}
서버 터미널에서 콘솔 찍어보자고 하신 형근님,
아무래도 타입 문제일 것 같다고 하신 승완님 감사합니다.
'항해99 > 7주) 클론코딩' 카테고리의 다른 글
| 항해99 7주차 WIL : 이번 주차 가장 신경 쓴 부분/기술 (0) | 2022.06.26 |
|---|---|
| 클론코딩 수요일 (0) | 2022.06.22 |
| Refresh Token 연습중, 개선할 점 & 의문점들 (0) | 2022.06.21 |
| 6/20 기술매니저님 멘토링 이후 (0) | 2022.06.21 |
| 현재 수정사항 (0) | 2022.06.19 |