오늘 한 것들

kimyz·2024년 1월 4일

[AxiosError 404]

경로를 만든 사용자의 아이디를 넣기 위해서,
먼저 사용자 아이디를 로그인 한 사람 이메일로 찾아서 넣으려고 했는데
아무리 찾아도 자꾸 에러가 나는 거였다.

prisma도 처음 써보고 next.js api도 익숙하지 않아서
뭐가 문제인지 모르고 하루 종일 씨름했는데, 결론은 파일 이름을 잘 확인하자,, ^^
/api/user.ts 에 웬 띄어쓰기가 들어가 있었다 /api/ user.ts

브라우저에서도 확인을 못했고 터미널에서도 확인을 못했따 ㅎㅎ

404 에러일 때 확인해 볼 것

경로 문제일 가능성이 농후
나같은 경우에는 axios()로 컴포넌트에서 api를 호출하고
api 파일에서 통신을 해서 결과값을 던져주는 거였는데

404 에러가 뜨는 건 지금 생각해보니 당연히 그 파일을 못 찾아서 였다..
어쩐지 다른 컴포넌트에 있는 api는 잘만 되는데 얘만 안 되더라,,

JSON 변환이 안 된다

저거 잘 고치고 이제 [경로] 테이블에 데이터 POST 하려고 했다.
나의 DB 구성에 경로에 대한 데이터는 몽땅 JSON으로 바꿔서 넣으려 했는데

<카카오 지도 마커 + customOverlay + 데이터>에 대한 정보를 저장한
markerData라는 해시맵을 아래 방법으로 JSON으로 바꾸려니까 안 됐다.

const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');

// Map 객체를 일반 객체로 변환
const myObject = Object.fromEntries(myMap);

// 일반 객체를 JSON 문자열로 변환
const jsonString = JSON.stringify(myObject);

console.log(jsonString); // 변환된 JSON 문자열 확인

Converting circular structure to JSON 이런 에러가 났다.
찾아보니까 객체 안의 요소끼리 서로 참조를 하고 있어서 그렇다는데,,
markerData의 구조에서 key는 장소의 id, value는 나머지 값들이었다.

콘솔로 찍어봐도 어떤 것들이 서로 참조하고 있는지도 모르겠고
내 눈으로 봤을 때 전혀 그런 것들이 안 보여서 그냥 보내는 데이터를 변경하기로 했다.

근데 여기서 데이터를 바꾸다 보니 원래 왜 그렇게 했었찌? 하는 생각이 들었따.
나중에 기능 다 완성하고 나서 이 부분은 수정을 해야 할 필요가 있을 것 같다.
너무 복잡하고 이상꾸리하게 구성해 둠,,

무튼 데이터 저장을 위해서 보내는 건 그냥 필요한 데이터 따로 바꿔서 보냈따.

'UserWhereInput' 형식에 'createdById'이(가) 없습니다.

prisma.findMany() 하는데 갑자기 난 에러.
내가 깜빡하고 테이블 이름을 안 바꿔서 났던 거!

where 구절에 넣었는데 그런 필드가 없어서 나는 에러인 것 같다.

const plans = await prisma.plan.findMany({
  where: {
    createdById: userId,
  },
})

엄청 어이없는 실수지만 똑같은 실수 또 할까봐 박제.

아 그리고 AxiosError 500..

이거는 서버에서 잘못 된 거
나는 res를 잘못 보내줄 때 났었다

예를 들어,, return 을 안 해주거나 return 하는데 거기에 갑자기
응답 받아온 애를 통째로 넣어버려서 애가 이상하게 생각하거나 했을 때 났다.

이게 자꾸 프론트에서 api까지 만들어서 관리하고 있다는 걸 까먹는 것 같다..
그래서 자꾸 에러나면 당황만 나고 ㅠㅠ api에서 잘못 되었따는걸 모르는듯 기억하자ㅏㅏㅏㅇ

오늘의 고민

경로를 설정하고 그 장소에 방문할 시간이랑 필요한 것들을 메모할 수 있도록 해두었다.
그리고 저장 버튼을 눌렀을 때 데이터에 시간과 메모를 추가해서 DB로 보낼 건데,,
입력받은 값을 각자의 데이터에 추가해주는 방법이,, 딱히 생각이 안 나서

pendingDatas 라는 상태가 데이터인데 거기에 계속 onChange로
setPendingDatas 함수를 사용하고 있다.

근데 input 창에 계속 입력을 할 때마다 그럼 set 함수가 돈다는 건데,,
이게 성능이나 뭔가에 영향을 주지는 않을까? 라는 고민이 된다.

찾아보긴 했는데 404에러때문에 뺏긴 시간이 너무 많아서
뭔가 마땅한 방법을 찾지 못해서 일단은 고치지는 못했다.

나중에 일단 기능 한번씩 다 돌리고 나서 수정해봐야겠당

profile
😛

0개의 댓글