본문 바로가기
JavaScript/Node.js

Node) express-validator로 유효성 검사하기

by 박채니 2023. 1. 17.
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.

 

express-validator

- express 유효성 검증 모듈

 

설치

$ yarn add express-validator

 

PostRouter.ts

router.post(
    "/",
    [
        body("type").exists().isIn(["short", "long"]), 
        body("title").exists(), 
        validatorErrorCheck
    ],
    createPicka,
);

body는 req.body에 들어오는 값들만을 검사하고, 검사하고 싶은 필드를 body에 넣어주고 검증 API를 붙여 사용해주면 됩니다.

만일 검증을 하다가 에러가 발생하였을 때는 메세지를 받아 처리해줄 수도 있는데, 이는 따로 분리해서 사용해주었습니다.

 

middlewares/ValidatorErrorCheck.ts

import { NextFunction, Request, Response } from "express";
import { validationResult } from "express-validator";
import { logger } from "../utils/Logger";

const validatorErrorCheck = (req: Request, res: Response, next: NextFunction) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
        console.error("invalid value");
        logger.error("invalid value");
        return res.status(400).json({ errors: errors.array() });
    }
    next();
};

export { validatorErrorCheck };

validationResult(req)로 에러 메세지를 받아줄 수 있고, isEmpty()는 validationResult(req)객체에 오류가 전혀 없는 지를 체크해주고 있다면 true / 없다면 false를 반환해줍니다.

logger에 기록해주었고, 바로 리턴처리 해주었습니다.

 

만일 오류가 없다면 next()로 실행하려던 라우터가 실행됩니다.

 

참고 사이트

https://choice91.tistory.com/59

 

[Node.js] express-validator로 유효성 검증하기

📌 express-validator express-validator는 express 유효성 검증 모듈이다. 📌 설치 npm i express-validator 📌 유효성 검증하기 라우터에 추가해주면 된다. 'body("필드", "메시지").검증API.검증API.검증API...'의 형태

choice91.tistory.com

https://charming-kyu.tistory.com/14

 

[express] 유효성 검사를 위한 express-validator 사용하기

서론 Spring-boot를 공부하던 중 Bean Validation에서 제공하는 annotation을 사용해보니 코드가 너무 간결해지고 관리가 편하다는 것을 느꼈다. 그래서 node express에서도 요청 값을 validation 할 수 있는 라이

charming-kyu.tistory.com