유효성 검사
394
投稿した質問数 3
구글링을 통하여 아래와 같이 강의 내용 코드에서 유효성검사를 진행하는 코드를 간단하게 작성하였습니다. 이렇게 하는 방식이 맞을까요?
// Middleware
import { validationResult } from "express-validator";
export const validatorErrorChecker = async (req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) { //에러가 있으면 400 Error
return res.status(400).json({ errors: errors.array() });
}
next();
}
// Controller단
import { Router } from "express";
import { pagination } from "../../../middleware/pagination";
import { body } from "express-validator";
import { validatorErrorChecker } from "../../../middleware/validator"
import { UsersDTO, CreateUserDTO, UpdateUserDTO } from "../dto";
import { UserService } from "../service";
// Router
class UserController {
router;
path = "/users";
userService;
constructor() {
this.router = Router();
this.userService = new UserService();
this.init();
}
init() {
this.router.get("/", pagination, this.getUsers.bind(this));
this.router.get("/detail/:id", [
//유효성 검사
body('email').exists().isEmail(),
body('password').exists().isLength({ min:10, max:20 }),
], this.getUser.bind(this));
this.router.post("/", this.createUser.bind(this));
this.router.patch("/:id", this.updateUser.bind(this));
this.router.delete("/:id", this.deleteUser.bind(this));
}
...
}
const userController = new UserController();
export default userController;
回答 1
0
안녕하세요, 인프런 AI 인턴이에요.
코드를 보니 express-validator 라이브러리를 활용하여 유효성 검사를 하는 방식으로 보입니다. 이 방식은 일반적으로 많이 사용되는 방법 중 하나이며, express-validator 라이브러리는 검증 규칙 및 에러 메시지를 설정하는 기능을 제공하므로 개발자가 일일이 코드로 검증 규칙을 작성하는 것보다 간편하고 편리합니다.
따라서 해당 코드에서 유효성 검사를 진행하는 방식은 맞는 것으로 보입니다.
하지만, 개발자가 작성한 유효성 검사 코드가 모든 경우에 적용될 수 있는 것은 아닙니다. 따라서 검증할 데이터의 특성에 따라 검증 방법을 적절하게 선택하고 적용하는 것이 중요합니다.
더불어, 검증 규칙과 에러 메시지 설정에도 신경을 써야 하며, 적절한 에러 메시지를 작성하여 사용자에게 분명한 안내를 제공해주어야 합니다.
감사합니다.
트리거 질문
0
3
0
3강 질문
0
18
1
2강 nodejs 3단계 설명 질문
0
33
1
useEffect와 lifecycle문의
0
26
2
프론트엔드 학습 수준 문의
0
38
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
48
2
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
36
1
nodemon -exce 관련 오류가 나오실 때
0
151
1
swagger /user/detail/:id 조회시 id로 조회 안됩니다.
0
192
1
Axios Mocking에 관한 질문입니다.
0
332
1
Express 사용하면서 Jest 테스트 관련해서 질문 드립니다.
0
294
1
윈도우는 터미널을 뭘 써야하나요?
0
245
1
해당 강의 깃허브 주소나
0
305
1
pm2 start ecosystem.config.js로 실행했는데 require로 작성하는 것에 에러가 뜹니다.
0
999
1
포매팅
0
278
1
프리즈마 git repository 질문
0
299
1
Swagger 설정 문의
0
327
1
섹션 0에 디스코드 주소가 어디에 있나요?
0
426
1
prisma에서 (비)식별관계 설계
0
334
1
prisma schema에서
0
812
1
AWS RDS 세팅 중에 오류가 나요...
0
499
1
디스코드 채널
0
587
1
github 권한
0
767
1
swagger No operations defined in spec
0
3071
1

