개발하고 싶은 초심자

3-5. postman을 활용한 응답 받아오기 확인 본문

Project in Codestates/First Project

3-5. postman을 활용한 응답 받아오기 확인

정새얀 2022. 5. 18. 22:52

1. 코드 작성에만 급급해서 정작 작성한 코드가 정말로 제대로 된 응답을 받아오고 있는 지 확인하지도 않았다.

내일이 발표 준비인데, 완벽한 완성까지는 그렇다 치더라도 백지로 낼 수만은 없기에, 늦게나마 postman을 활용하여 제대로 된 응답을 받아오는 지 확인해봤다.

 

처음에 요청을 보낼 때 http://localhost:{포트번호}/signup으로만 요청을 보내줬다.

즉, 라우터는 신경도 안쓰고 바로 클라이언트에서 서버로 요청을 보냈기 때문에

계속해서 404 에러가 뜨거나 ERR_CONNECTION_REFUSED 에러가 떴던 것이다.

결국 제일 기본적인 포스트맨 요청도 생각하지 못하고, 라우터도 신경쓰지 않았던 백엔드의 불찰이었다.

급하게 마신 물이 체한다는 말이 있듯, 단계를 밟아가면서 했어야 했는데...

 

그렇게 모든 라우터들을 포스트맨으로 요청을 보내 제대로 된 응답을 보내고 있는 지 확인해보았다.

1차로 signup에서 요청을 보내 성공 응답 코드를 받는 데까지 완료했다.

그런데 데이터베이스를 보니 body에 담아 보냈던 이메일 주소만 데이터베이스에 저장이 되어있고,

나머지 user_name과 password의 내용은 저장이 안되어있었다.

user_name은 NULL로 표기가 되고, password는 아예 저장이 안된다.

 

이 부분에 대한 해결은 코드 문제였다.

findOrCreate()를 할 때 where절에 user_email만 적어놓고 default값을 user_name과 password를 적어놓았기 때문에 model 생성할 때 defaultValue로 지정해두었던 NULL과 빈 문자열이 저장된 것이다.

where: {user_email, user_name, password}로 수정했더니 해결되었다.

 

2. 로그인에서 postman은 200, server에서는 401을 띄운다...왜?

처음에 시도할 때는 200을 띄웠지만 

node:internal/errors:464
    ErrorCaptureStackTrace(err);
    ^
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

이런 에러를 띄우더니,

이제는 postman에서는 200을 띄우는데 서버에서는 401을 띄우면서 위의 에러를 띄우기 시작했다.

 

또한 이메일의 값이 undefined로 받아오는 에러가 나왔다.

tokenFunctions의 sendAccessToken 함수 내용에 json을 사용하여 accessToken을 이중으로 보내고 있었기 때문이었고, 클라이언트에서 user_email이라고 보내야 하는 것을 email이라는 값으로 보내고 있었기 때문에 나온 에러였다.

결국 서버와 클라이언트에서 하나씩 문제가 있었다.

Comments