8. Node 가계부 만들기 [ 유저 기능 (회원 가입) 전송 받은 데이터 유효성 검사 ] - 5
2022. 5. 28. 18:48ㆍ프로젝트/가계부 - 제작 JavaScript
서비스 코드 : https://crispypotato.tistory.com/216
서비스 코드 까지 작성하면 기능 구현은 끝났다 하지만!!
프론트에서 잘못된 데이터를 보내거나 필요 데이터를 빼먹었을 때 버그가 발생한다.
이 때 전송 받고 잘못된 데이터가 들오거나 형식이 잘못됬다는 에러를 보내야 한다.
유효성 검사를 깔끔하고 쉽게 하기 위해 express-validator 라이브러리를 사용한다.
express-validator 사용 방법 : https://crispypotato.tistory.com/212
1. /lib/validator.js 파일 생성
2. validator.js 에러처리 코드 작성
Validator에서 에러처리
/lib/validator.js
const { validationResult } = require('express-validator')
const httpError = require('http-errors')
const Validator = (req, res, next) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
throw httpError(400)
}
next()
}
module.exports = { Validator }
3. /user 에서 전송 받는 데이터 검사 목록 작성
//users.validators.js
const { param, body } = require('express-validator')
const IdParam = param('id').notEmpty().isLength({ min: 2, max: 10 })
const IdBody = body('id').notEmpty().isLength({ min: 2, max: 10 })
const Pwd = body('pwd').notEmpty()
module.exports = { IdParam, IdBody, Pwd }
4. 만든 users.validators.js 목록 users.route.js에 적용
//users.route.js
const express = require('express')
const router = express.Router()
const { Validator } = require('../../lib/validator')
const { CheckUserId, CreateUser } = require('./users.service')
const { IdParam, IdBody, Pwd } = require('./users.validators')
router.get('/:id', [IdParam, Validator], CheckUserId)
router.post('/signup', [IdBody], [Pwd, Validator], CreateUser)
module.exports = router
728x90
반응형
'프로젝트 > 가계부 - 제작 JavaScript' 카테고리의 다른 글
10. Node 가계부 만들기 [ 로그인 passport 전략 생성 ] - 2 (0) | 2022.05.28 |
---|---|
9. Node 가계부 만들기 [ 로그인 기능 구현 파일 생성 ] - 1 (0) | 2022.05.28 |
7. Node 가계부 만들기 [ 유저 기능 (회원 가입) Service코드 작성 ] - 4 (0) | 2022.05.28 |
6. Node 가계부 만들기 [ 유저 기능 (회원 가입) repository 코드 작성 ] - 3 (0) | 2022.05.28 |
5. Node 가계부 만들기 [ 유저 기능 (회원 가입) 필요 함수 구현 ] - 2 (0) | 2022.05.28 |