9/24_24일차

자햐·2024년 9월 15일
0

교육

목록 보기
23/51

유효성 검사

현재 우리 코드는 매우..매우 깨끗하지 않다
사유 : if-else가 너무 많고..그래요

유효성 검사 : validation
"사용자가 입력한 값"의 유효성(=타당성)을 확인하는 것

(유효성 예시)
1. userId : 값이 있어야, 숫자여야..
2. 사람 name : 숫자X, 문자열, 2자 이상..
등등..

외부 모듈 사용할 것!
-> if-else로 유효성을 따지기엔 너무 if-else 잔치가 됩니다 ㅎㅎ
-> "express-validator" 사용할거에요!

npm install express-validator
터미널에 해서 설치함

userId(유효성 검사)

유효성 검사 위에 추가

라고 유효성 검사를 진행해줄 수 있다.

name 추가 그리고, return 등장

name의 유효성검사 추가(스트링이어야 한다는 조건 추가)
return을 통해 바로 끝내기(break를 생각했지만 return을 해주면 됐다.)

(코드) - 채널 개별 생성 부분

(name과 userId의 유효성 검사를 모두 통과하지 못한 예시 사진)

sql 에러 (err)

오류 : 없는 userId로 req를 보낼 경우 db에 등록이 안됨. 그러나 오류 알림이 뜨지 않고, 201로 뜨기 때문에 혼동이 생김.
심지어? auto_increment속성으로 인해 위의 사진처럼 id가 몇 번 등록이 안됐음에도 불구하고 늘어난 숫자로 다음 내용으로 db에 등록이 됨.

이를 해결해보자!


여기서 사용하고 있지 않은 변수 : err (에러 변수)
이걸 이용해볼거다

고친 후(err에 조건을 더해준 뒤)

postman으로 userId가 이상하게 req를 보내보면 다음과 같은 에러 메세지를 콘솔에 띄우고 설정한 400의 bad request가 뜸을 볼 수 있다

channels 리팩토링 + API 우선순위

리팩토링 (채널 개별 수정 전까지 한 내용)

  • api 우선순위 : postman이 헷갈려서 에러를 낼 경우(대충 설명하자면..) /req보낼 때 뒤에 id를 안 붙인거니 아니면 id를 안 붙이는 전체조회인데 userId값을 잘못 친거니? 라는 식의 에러가 날 때 postman은 에러코드를 코드가 짜인 순서대로 냅니다(가령 채널 전체 조회가 채널 개별 조회보다 코드가 위에 작성되었을 경우 채널 전체 조회 에러를 먼저 출력함.)

update

delete

검사 미들웨어 분리

미들웨어 : 함수를 모듈화한 것(그냥 모듈이라고 생각하면 됨)
다른 곳에서 사용할 수 있도록 만드는 것

-> 다음 포스트에서 이어서

profile
산업과 예술의 만남에 있는 예비 개발자..

0개의 댓글