본문 바로가기
개발 이야기/NodeJS

NodeJS validate로 요청 데이터 검사

by 농개 2019. 2. 11.
반응형

웹서버를 만드는데 요청 데이터 검사를 간편히 해주는 모듈이 있다.


바로 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가 저렇코롬 에러를 인지 할 수 있게끔 잘 나오는 것을 확인 할 수 있다.



반응형