알라딘 API를 사용해서 프로젝트를 진행하는데 CORS 에러가 생겼다.
개발 할 당시에는 CORS 확장 프로그램을 사용하여서 문제가 안생겼는데
배포를 하려니 상당히 거슬려서 어떻게하면 해결할 수 있는지 찾아봤음.
직접 API를 호출하면 제약이 발생하고, EXPRESS 서버를 도입하여 백엔드 서버를 거친 후 요청/응답이 이루어지도록 했다.(CORS 미들웨어)
일단 테스트로 만든 곳에서 동작하는것은 확인했다.
이제BookMarket에 적용하면되는데,
서버를 express 폴더에
npm init-y 로 package.json 생성 후
라이브러리들을 설치한다.
설치 완료되면
server.js 를 만들어서
안에 api를 불러올 수 있도록
코드를 짠다.
테스트할거임
그리고 package.json에서 쉽게 실행할 수 있도록
start 를 node server.js로 변경해주고
터미널로 실행한다.
휴;; 이제 실제 프론트엔드랑 연결해야함
server.js (back)
이런식으로 쿼리 타입은 베스트 셀러인지 , 신간리스트인지 , 뭐 블로그 추천 리스트라던지 그런 옵션들을 넣어서
front
api 호출할 코드를 hook으로 만들어서 사용했다.
그리고 BestSeller 컴포넌트는 프롭스로 type을 받아오는데
이 타입이 위에서 언급했던 쿼리타입이다.
이 타입을 useData에 넘겨주면
server.js에서 "ItemList"로 끝나는 url을 가져와서 알라딘 api에서 데이터를 가져와 front로 전달한다.
그 데이터를 BestSeller 컴포넌트에서 받아서
data:bestSeller라는 변수로 받아서 출력해주면
다른 부분들도 위와 같이 수정하면 된다 ㅠ.,
https://inthedev.tistory.com/55
https://github.com/FRONTENDSCHOOL7/Double-Check?tab=readme-ov-file
https://reese-dev.netlify.app/issue_archive/aladin_cors/
vite 에서 서버 환경 만들기
https://blog.illustudio.co.kr/todo-list-front-to-back-3/
보완 사항
- 처음 서버 시작 시 데이터를 받아오는데 시간이 오래걸림
그래서 await로 로딩 시간동안은 로딩화면 보여주는게 맞지 않나 싶음.
'FRONTEND > React' 카테고리의 다른 글
[myCart] 회원가입 페이지 // 프로필 설정 (0) | 2023.12.19 |
---|---|
[myCart] 로그인 페이지 /useRef()사용하여 비밀번호 숨김/보임 버튼 추가 /react-hook-form 라이브러리 사용 /유효성 검사 (0) | 2023.12.19 |
[myCart] 주문 내역 페이지 (0) | 2023.12.19 |
[myCart] 장바구니 페이지 (0) | 2023.12.19 |
[myCart] 상품 상세보기( SingleProductPage ) 생성 (0) | 2023.12.19 |