어제 deploy했던 서버에서 큰 문제가 발생했습니다
그 문제는 로그인 이후 이것저것 장바구니나 todo list 목록에
데이터를 몇번 전송하고 다른 아이디로 로그인해서
똑같은 작업을 몇번 하다보면
이러한 문제가 생기는데요
http_outgoing :652 라는 에러가 발생하면서
서버가 터집니다
이게 대체 무슨문제일까 잠시 고민해봤습니다.
에러메시지를 읽어보면 제 server.js파일에 95번째 줄하고 87번째 줄에서 foreach 반복문에서 문제가 발생하는것 같네요
해당줄로 가봤습니다.
이게 85번째 줄쯤 있는 반복문인데
쭉 읽어보면 이 반복문은 크게 문제가 없는것처럼 보입니다
jsonfile 이름의 배열을 반복해서 jsonfile의 변수 내부에
존재하는 id 키값과 client쪽에서 전송해준 userid 값이 일치하는 값이 나올경우 그에 해당하는 인덱스 값의 위치에
존재하는 jsonfile의 배열을 하나 잘라내서 userinfo값과 교체한뒤
userinfo라는 객체를 client에 응답 한다는 내용인데요
위에 함수는 딱히 문제를 모르겠군요
한가지 의심가는건
조건문마다 res.send를 넣었는데
여기서 생기는 문제가 아닐지 싶긴 한데
구글링을 해봐도 저와 비슷한 오류를 띄우는 분은 없는거같고
이런식으로 오류가 뜨면 서버에서 여러번 응답을 해서
발생하는 오류인것 같습니다
다시 코드를 찾아봐야겠네요
서버가 여러번 응답할만한 문제는 제가 짠 api에서는
반복문에서만 발생할테니
코드를 찾다보니
드디어 발견했습니다.
res.send () 이 부분이 foreEach반복문 내부에 있어서
발생하는 문제였네요 ;;
애초에 반복문 내부에 있을 필요가 없는 결과값인데
왜 저렇게 넣고 짰을까 싶습니다.;
저 문제때문에 하루종일 코드 수정하고 테스트 하고 했던걸 생각하면...
한숨이 나오네요 ㅠㅠ
그래도 이제야 원인을 찾아서 다행입니다
해당 부분을 전부 수정하면 해결되겠군요
이제 잘 들어오는군요?
이렇게 처음 만들어본 서버에서 api를 사용해보고
제가 직접 회원가입 todolist 장바구니 같은걸 관리하는 api도 직접 짜봤습니다
rest API 개념도 숙지해야해서
이번에 만들어본 서버는 정말 외부와의 통신을 하는거에
큰 도움이 되는 시간이었네요
오늘 스테픈은 가볍게 2km 완료했습니다.