티스토리 뷰

 최근에 전혀 그럴 의도가 없었지만 node.js 스킬을 향상해야하는 일이 발생하고 있다. 덕분에 다양한 모듈들을 접하고 신세계를 맛보는 중인데, 앞으로 몇 가지를 아카이빙 겸으로 포스팅할 예정이다. 오늘은 아카이빙할 모듈은 express.js에서 사용할 수 있는 request 유효값 검사 모듈 express-validator다.

 express-vaildator는 vaildator라는 비슷한 형태의 모듈에서 파생된 오픈 소스 모듈이다. vaildator는 Back-end, Front-end 둘 다 사용할 수 있지만 express-vaildator는 express의 요청 객체(req)의 형태에 적합하게 사용할 수 있도록 변형시킨 모듈이다. vaildator는 크게 2가지의 기능을 제공하며 express-validator에 그대로 계승되었다.

  • Validators (유효값 검사)
  • Sanitizers (살균, 보안 위협을 제거하기 위한 기능들)

Validators와 Sanitizers 내의 메소드들에 대한 설명은 vaildator의 Github 페이지를 참고해보도록 하자. isEmail(), isNumeric(), isNull() 등 굉장히 유용한 유효값 검사 메소드와, escape(), rtrim()과 같은 필수 적인 보안 관련 메소드들이 있다. 그리고 이러한 메소드 들을 express-validator 미들 웨어를 통해 Request 객체(req)에 확장하여 사용할 수 있다. 

express에서 사용하기 위해서는 우선 npm install express-validator --save 로 패키지를 설치하고 다음과 같이 미들웨어 사용을 선언하는 것으로 사용할 수 있다.

app.use(expressVaildator()) 로 미들웨어 사용을 선언할 때 expressVaildator()의 인자로 옵션을 던져줄 수 있는데 옵션 내역은 Github의 README 참고. 아래는 GET 방식을 통해 들어온 파라미터의 email 규격을 검사하는 간단한 예제 코드이다.

위 코드를 노드로 띄우고 GET 방식으로 이메일 주소를 던졌을 때 정상적인 이메일 규격을 따른다면 'Email Check OK' 메시지가 출력되고 email 규격이 아닐 경우 'Email Check Error' 메시지가 뜨는걸 확인 할 수 있다.

이메일 규격 검사 성공 케이스

이메일 규격 검사 실패 케이스

 위의 예제는 방금 발로 짠 매우 간단한 예제고 좀 더 좋은 예제는 expressVaildator의 Github README의 Usage 탭을 참고하면 잘 나와있다. 절대 더 쓰기 싫어서 포스트를 여기까지 줄이는 것이 아니다.

프로필사진

Yowu (Yu Yongwoo)

백엔드 개발 정점을 꿈꾸는 흔한 개발자입니다
우분투 데스크탑 개발 환경을 매우 선호합니다
최근에는 vscode에 vim 모드 올려서 쓰고 있습니다
개발용 키보드는 역시 해피해킹 프로2 무각입니다
락 밴드에서 드럼을 꽤나 오래 쳤었습니다