이번에는 서버가 클라이언트에게서 받은 파라미터를 검증하는 미들웨어를 구성할것이다.

파라미터는 캐릭터명, 서버명, 레벨 세 가지다. 

검증을 거치는 이유는 에러 발생을 줄이고, 이는 서버 자원을 효율적으로 사용할 수 있게 한다.

(보안 이슈도 있지만, 해당 코드에는 작성하지 않았다.)

아래 코드는 각 파라미터를 검증하는 코드들이다.

캐릭터 레벨은 1~60의 양의 정수이기때문에 이외의 입력값들은 모두 배제해야한다.

특히 자바스크립트에서 숫자 검증은 복잡한면이 있다.

기본적으로 입력된 캐릭터 레벨은 string형태로 전달된다.

우선 입력값이 숫자인지 체크(isNAN())하고, string에서 number로 변환한 후(Number()), 해당 숫자가 정수인지 체크한다(isInteger()).

마지막으로 그 숫자가 1~60사이의 숫자인지 체크하면 된다.

캐릭터 이름은 string형태인것을 확인한다.

해당 서버명이 현재 DB에 등록된 서버 리스트에 있는 서버인지 확인한다.

 

각 데이터의 타입을 매칭해주는 코드이다. 

메인 페이지와 로그인 페이지는 검증 과정을 거칠 필요가 없으므로 다음 과정으로 패스하는 코드를 넣었다.(requestBodyCheck.js, 11번 라인)

이후 datakey에 있는 파라미터들을 순차적으로 검사 후 문제가 있으면 error메세지를 보내고 없으면 next()를 실행한다.

 

+ Recent posts