개발하고 싶은 초심자
2-1. 220525 기본 로직 작성하기 본문
1. 로직 작성하기
① 회원가입, 로그인, 로그아웃 구현
/users/signup
/users/login
/users/logout
② 닉네임 및 비밀번호 수정, 회원 탈퇴하기
/mypage/username
/mypage/password
/mypage/withdrawal
2. 포스트맨으로 요청 및 응답받아오기
① 회원가입
② 로그인
③ username(닉네임) 수정
④ 비밀번호 수정
⑤ 로그아웃
⑥ 회원 탈퇴
⇒ 모든 과정에서 데이터베이스를 확인해보았을 때, 회원가입 시 지정해주었던 비밀번호가 해시된 값으로 저장된 것을 확인할 수 있었다.
마찬가지로 비밀번호 수정 시에도 수정한 비밀번호가 해시된 값으로 저장되어 있었다.
회원 탈퇴 시 204 status code를 띄우며 데이터베이스에서 삭제된 것을 확인할 수 있었다.
3. 에러 핸들링
요청과 응답을 받아오면서 에러는 자주 떴다.
처음 본 에러는 이것이었다.
return done(new TokenExpiredError('jwt expired', new Date(payload.exp * 1000)));
^
Token ExpiredError: jwt expired
이 에러는 토큰이 만료되었을 때 나오는 에러로, tokenFunctions에서 access Token의 유효시간을 짧게 지정해주어서 요청, 응답을 시도해보는 와중에 뜬 에러 메시지였다.
토큰의 유효시간을 더 길게 늘여주었더니 해결된 에러였다.
두 번째 에러는 이것이었다.
node:internal/process/promises:246
triggerUncaughtException(err, true /* fromPromise */);
^
AssertionError [ERR_ASSERTION]: Missing where attribute in the options parameter
닉네임과 비밀번호 수정할 때 가장 많이 볼 수 있었던 에러였다.
구글링을 해본 결과, 오타가 났을 확률이 가장 높다는 말이 제일 많았다.
그래서 sequelize 공식 문서에 나와있는 update 기본 구문을 확인해본 결과 중괄호를 잘못 감싸주어 나온 에러였다.
제대로 고쳐준 결과 해결되었다.
세 번째 에러는 이것이었다.
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
^
TypeError: Router.use() requires a middleware function but got a Object
이것도 구글링 결과 라우트를 만들어 연결할 때 최하단부에 module.exports = router;를 써주지 않아 나오는 에러였다.
바로 작성해주고 저장하니 정상 작동되었다.
'Project in Codestates > Final Project' 카테고리의 다른 글
2-3. SR 피드백 이후 계획 (0) | 2022.05.27 |
---|---|
2-2. 220526 소셜 로그인과 소스트리 (0) | 2022.05.26 |
1-3. 220524 유저 플로우 작성 및 선택지 질문 작성 (0) | 2022.05.24 |
1-1. 220523 파이널 프로젝트 주제 정하기 및 기획 (0) | 2022.05.23 |
1-2. 220523 UI, UX (0) | 2022.05.23 |