반응형
웹서버를 만드는데 요청 데이터 검사를 간편히 해주는 모듈이 있다.
바로 validate다.
https://www.npmjs.com/package/validate
validate 이외에도 validator, express-validator 등 요청 스키마 검증 모듈을 많이 있는듯 하다.
(validator는 가장 많은 다운로드수를 기록하고 있었지만, 단순히 json형태의 data만 다룬다고 생각하고, json 스키마를 간단히 검사할 수 있는 걸 찾다보니 validate를 택하게 됬다... 과연 베스트 일지는 잘..)
(아래 방법은 node 프로젝트가 이미 존재 한다.)
01. vaildate 모듈 설치
아래 명령어로 설치 가능하다.
1 | npm install validate --save | cs |
02. 코드 작성
예를 들어, name 이라는 필드가 문자열이며, 필수이며, 길이가 최소 3, 최대 32라고 한다면 아래와 같이 스키마를 정의 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ... const Schema = require('validate'); const router = express.Router(); const reqBodySchema = new Schema({ "name": { type :String, required : true, length:{min:3, max:32} }, "school": { type :String } }) | cs |
그리고 사용 할 때에는
1 2 3 4 5 6 7 | router.post('/player', (req, res) => { const validError = reqBodySchema.validate(req.body) if(validError.length > 0){ return res.status(400).json({'error': 1, 'message' :validError[0].message}) } ...(스키마 검증 성공시) } | cs |
Schema 객체는 validate라는 메서드를 사용해서 유효성을 검사한다.
03. 결과
postman으로 잘못된 정보로 요청을 날려보자.
두 글자만 해서 요청.
작성한 코드의 응답처럼 400(Bad request)가 오는 걸 확인 할 수 있다.
또한 message가 저렇코롬 에러를 인지 할 수 있게끔 잘 나오는 것을 확인 할 수 있다.
반응형
'개발 이야기 > NodeJS' 카테고리의 다른 글
NodeJS 동작 방식과 개념 정리 (0) | 2019.03.02 |
---|---|
NodeJS 인기있는 Logging 모듈 Winston (0) | 2019.02.20 |
NodeJS Express 간단한 서버 만들기 (0) | 2019.02.11 |
우분투에 Nodejs설치 하기 (0) | 2018.07.28 |
NodeJS MongoDB 연동하기 (0) | 2018.06.30 |