본문 바로가기
javascript+node.js

11/14 노드 숙련 수업 6

by 마루청 2023. 11. 14.
728x90

내일배움캠프 오늘 학습 내용

 

  • node 숙련주차 개인 과제 : 상품 관련 api 완료, 회원가입, 로그인 DB 접근 구현

 

 

validate 해결

 

어제 mySQL에 저장할 때 validate가 잘 실행되지 않는 이슈가 있었다. 그래서 오늘은 그것을 해결하였다. 기존에는 데이터 model에서 isIn으로 해당하는 값만 적용하도록 validate를 만들어주었는데 잘 적용되지 않았었다. 따라서 특정 값만 들어갈 수 있도록 하는 ENUM을 이용하여 status 값을 저장하도록 하였다. 그렇게 하니 이 둘 값이 아니면 아예 값이 들어가지 않는 것을 확인할 수 있었다. 만약 값이 정확하지 않을 때는 로직을 통해 미리 방어하였지만 이렇게 이중으로 데이터 무결성을 지킬 수 있었다.

 

또, 이메일이 이메일 형식인지 확인하기 위해서 validate를 사용할 필요가 있었다. 여기선 model에서는 string으로 저장하고, email인지 확인하기 위해 내부 로직에서 isEmail을 사용하려고 했지만, 잘 되지 않았다. 이유는 validator를 실수로 require를 하지 않고 사용하고 있었기 때문이었다. validator는 다양한 검증에 유용한 라이브러리이다. 따라서 다음과 같은 방식으로 코드를 사용하였을 때 Email이 아닌 경우는 에러로 종료할 수 있도록 만들었다.

const validator = require("validator");
...
if (!validator.isEmail(email)) {
    return res.status(400).send({
      errorMessage: "이메일 형식이 올바르지 않습니다.",
    });
  }

 

또, 회원가입을 해 DB에 user의 정보를 저장하는 것과, 해당 DB에 해당하는 유저를 찾아 로그인하는 것까진 진행하였다. 현재 로그인 후 token을 헤더에 옮겨 access 상태를 얻어 마이페이지에서 해당 로그인한 유저의 정보를 출력해야하는데, 제대로 사용하지 못하고 있기에 내일은 그 부분을 고쳐보려 한다. 또, 로그인한 사용자만 상품을 등록하고 삭제할 수 있도록 수정할 예정이다.

728x90

'javascript+node.js' 카테고리의 다른 글

11/16 노드 숙련 수업 8  (0) 2023.11.16
11/15 노드 숙련 수업 7  (0) 2023.11.15
11/13 node 숙련 수업 5  (0) 2023.11.13
11/10 노드 숙련 수업 4  (0) 2023.11.10
11/9 노드 숙련 수업 3  (0) 2023.11.09

댓글