웹프레임워크/Django

마이페이지 JS

SODAsora 2023. 5. 26. 09:04

 

#api.js

export async function getUserInfo(user_id) {
    const response = await fetch(`${BACK_BASE_URL}/api/users/${user_id}/`)

    return response
}

 

#mypage.js

// onlaod -> 순서를 마지막으로 보내줌 (* import가 있는 경우 중복 검증 때문에 하나만 있는게 좋음)
window.onload = async () => {
  const payload = localStorage.getItem("payload");
  const payload_parse = JSON.parse(payload)

  const urlParams = new URLSearchParams(window.location.search);
  let searchID = urlParams.get('user_id');
  console.log(searchID)
  searchID = searchID == null ? payload_parse.user_id : searchID
  const response = await getUserInfo(searchID)

  const response_json = await response.json()
  console.log(response_json)

      // 성공했을때만 값을 변경함
  if (response.status == 200) { 
      // htmil의 id값을 가져아서 변수에 저장
      const email = document.getElementById("user-email")
      const username = document.getElementById("user-name") 
      const profile_image = document.getElementById("user-image")
      const bio = document.getElementById("user-bio")
        
        // 변수 안에 들어갈 텍스트를 응답값으로 변경
      email.innerText = response_json.email
      username.innerText = response_json.username
      bio.innerText = response_json.bio
      console.log(response_json.bio)
      console.log(response_json.username)
      console.log(response_json.email)
      
      // 이미지 값 변경이 있을때만 수정
      if (response_json.profile_image != null) {
        profile_image.setAttribute("src", `${BACK_BASE_URL}${response_json.profile_image}`)
      }
        } else if (response.status == 404) {
              console.log("찾는 계정이 없습니다 ")
       } 
// api.js(통신) 에서 응답값으로 데이터를 받아서  통신을 api.js로 옮겨야함 
// fetch 로 백앤드와 통신하는 과정을 api.js로 옮기고
// api.js 받아온 응답값을 다시  mypage.js로 가져와서
// status코드값에 따라 데이터를 적절히 html에 넣어준다

        console.log(response_json.profile_image)
        }