SMALL
안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
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
❋ https://charming-kyu.tistory.com/14
LIST
'JavaScript > Node.js' 카테고리의 다른 글
Node) 부모 라우터의 req.params를 자식 라우터에게 넘기기 - 중첩라우터 (0) | 2023.02.02 |
---|---|
Node) React + Node로 infinity scroll 페이징 처리 (observer) (0) | 2023.01.25 |
Node) 카카오 로그인 구현 정리 (0) | 2023.01.17 |
Node, Express, typescript boilerplate - 4 (0) | 2023.01.12 |
Node, Express, typescript boilerplate - 3 (0) | 2023.01.12 |