티스토리 뷰

 최근에 전혀 그럴 의도가 없었지만 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)

My MBTI type is ENTP. (Of course I do not believe it 100%, but I want to do that) I use Node.js to develop the backend. I use Ubuntu Linux as my development environment, and I love Vim. I am interested in open source and are keen to contribute. I have a bachelor's degree in computer science from Catholic University and now a software engineer at Plating Inc., I spent about 5 years developing and learning, and I am still interested in software development and culture. Recently, I am interested in React, Serverless structure, Domain Design Driven. Sometimes I play drums in the band.