본문 바로가기
Back-End Frameworks/Node.js

16) Nodejs - 백앤드 넓고 얕게 맛보기_정리_코드 최적화(출처 유튭 강의)★★★★

by Downy_J 2023. 11. 6.
728x90
반응형
SMALL

- 컨트롤러 log() 따로 빼기

login과 register에서 같은걸 쓰니깐

이걸 log()로 함수 만들어 따로 빼내면
짧아지고
코드 보기도 편해 졌다

조금 더 가보자

url로 따로 빼내서 오브젝트를 만들어주는데
method, path, status 이렇게다

그리고 log() 함수에 던져줄 값으로 response와 아까 담은 url을 담아 넣으면
log 함수 쪽은 이렇게 수정을 하면 좀더 간결하고
보기 편한 코드로 최적화가 된
그런데 로그인을 하게 되면

응답은 true인거 맞는데
message 부분이 담기지 않으니 undefined다
log() 함수에 true 쪽부분의 메시지를 이렇게 ||을써서 ""을 주자

상태코드 한번 보자

response에서 응답의 값이 넘어 올건데

에러가 400번대의 에러가 날수도
200번대의 성공이 뜰수도 있으니 이렇게 해주면
그럼 정말 200번대를 가져온건가?
사실 이렇게 클라이언트에서 실수 한 부분에 있어
400번 대의 번호룰 출력해줘야 하는게 맞다

그런데 서버에서는 정상적인 응답을 해줬기 때문에 200번대를 보여주고 있는거다

에러메세지 정상적으로 출력합니다~ 뭐 이런거...

일부러 에러를 한번 내보면

이렇게 에러 출력이 잘 안되고 있는걸 알수 있
return 해줄 res값에 status를 포함해주자
어디서? url의 status 에서

이걸 login도 동일하게 설정 해주고나면
이제 서버에도 동일한 http 상태코드를 출력하는걸 볼수있다

사실 클라이언트 단에서 이 에러를 따로 출력하는 방법이 존재 함! 근데 거기 까진 강의로 없고 찾아보며 공부를 하라고 했음

웹 개발에 있어 http  상태 코드는 정말 중요하다

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

이걸 뭐 다 외울 필요는 없다

다만 웹 개발에 있어 정말 중요하며

공부를 해둬 알고는 있어야 할 부분이다

이제 가져오는 부분 GET해서 render해주는 부분의 http 상태 코드들을 볼 차례다


메인 화면들어가면 보이는 이 304가 있는데

모든 render 화면이 다 304는 아니다

render : 얘를 사용하면 가장 처음엔 200번의 상태코드를 반환을 하고 그 다음부터 304를 반환을 한다
 

존재하지 않는 계정을 넣었을 시

이런식으로 뜬다.

이거 수정하자

 

먼저 왜 그런지 설명

존재하지 않는 녀석을 검색하면
저기 data[0]번지는 빈 배열이 된다
이렇게 undefined를 반환 하기때문에
여기 User 클래스의 저 부분이 반환하는 undefined를 받아버리면 저기 id와 psword는 구조분해 할당을 받을수가 없다
그래서 저기 { id, psword } 부분이 에러가 나버리면

catch(err) 부분에서 에러를 잡아버리게 된다

그래서 이러한 로그가 출력이 되는거

따로따로 받으면 구조분해 할당 안된다고 했으니

그럼  user로 하나로 받아내면 어떨까?

되는구만 허


이걸 백앤드의 기준점이자 약간 정석이다

생각하고 최적화 또는 타 기능을 제작 할시에

참고하여 만들어 나가면 될것 같음.

728x90