Node.js에서 Express-validator를 사용하여 유효성 검사하기
Express-validator는 Node.js에서 사용되는 유효성 검사 미들웨어로, Express.js 애플리케이션에서 사용자 입력값의 유효성을 검사할 때 유용하게 사용됩니다. 이 글에서는 Express-validator를 사용하여 간단한 유효성 검사를 실시해보겠습니다.
Express-validator 설치하기
먼저, Express-validator를 설치해야 합니다. npm을 사용하여 다음 명령어로 설치합니다.
$ npm install express-validator
사용 방법
Express-validator의 사용 방법은 다음과 같습니다.
- 라우터 함수에서 검사 규칙을 정의합니다.
- 검사 규칙에 따라 검사를 진행합니다.
- 검사 결과를 처리합니다.
라우터 함수에서 검사 규칙을 정의하는 방법은 크게 두 가지가 있습니다. 첫 번째는 직접 규칙을 작성하는 것이고, 두 번째는 검사 규칙 객체를 만들어 사용하는 것입니다. 이 글에서는 두 번째 방법을 사용하겠습니다.
검사 규칙 객체를 만들 때는 check 함수를 사용합니다. check 함수는 첫 번째 인자로 검사 대상(키)을, 두 번째 인자로 에러 메시지를 받습니다. 다음은 검사 규칙 객체 작성 예시입니다.
const { check } = require('express-validator');
[
check('name', '이름은 반드시 입력해야 합니다.').not().isEmpty(),
check('email', '이메일 형식이 올바르지 않습니다.').isEmail(),
check('password', '비밀번호는 6글자 이상이어야 합니다.').isLength({ min: 6 })
]
위 예시에서는 name, email, password 키를 검사하며, 각 검사 규칙과 에러 메시지가 설정되어 있습니다.
다음으로 검사를 진행하는 방법입니다. 아래 코드는 POST /signup 라우터에 적용된 예시입니다.
const { validationResult } = require('express-validator');
app.post('/signup', [
check('name', '이름은 반드시 입력해야 합니다.').not().isEmpty(),
check('email', '이메일 형식이 올바르지 않습니다.').isEmail(),
check('password', '비밀번호는 6글자 이상이어야 합니다.').isLength({ min: 6 })
], (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() });
}
// 검사 통과 후의 로직
});
위 예시에서는 검사 규칙 객체를 라우터 함수에 전달하고, validationResult 함수를 호출하여 검사 결과를 가져옵니다. errors 객체에는 검사에 실패한 내용이 담겨 있으며, 검사 통과 후의 로직을 작성합니다.
결론
이렇게 Express-validator를 사용하여 간단한 유효성 검사를 실시할 수 있습니다. 검사 기능이 추가된 라우터 함수를 만들어, 애플리케이션의 보안성을 강화해보세요!
키워드: 자바스크립트, 노드, Express-validator, 유효성 검사