[nodejs] REST API를 위한 데이터 유효성 검사

Node.js를 사용하여 RESTful API를 개발할 때 입력 데이터의 유효성을 검사하는 것은 매우 중요합니다. 잘못된 데이터를 데이터베이스에 저장하지 않기 위해 모든 입력 데이터를 검증해야 합니다. 데이터 유효성 검사를 위해 다양한 방법을 사용할 수 있지만, 일반적으로 JoiExpress-validator와 같은 패키지를 사용합니다.

Joi를 사용한 데이터 유효성 검사

Joi는 JavaScript 객체 유효성 검사를 위한 간단하고 강력한 도구입니다. 아래는 Joi를 사용한 예제 코드입니다.

  1. 먼저 Joi 패키지를 설치합니다.
npm install joi
  1. 다음은 Joi를 사용하여 데이터 유효성을 검사하는 예제 코드입니다.
const Joi = require('joi');

const schema = Joi.object({
  username: Joi.string().alphanum().min(3).max(30).required(),
  email: Joi.string().email().required(),
  password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
  repeat_password: Joi.ref('password'),
  access_token: [Joi.string(), Joi.number()],
  birth_year: Joi.number().integer().min(1900).max(2013),
});

// 유효성 검사
const data = {
  username: 'test',
  email: 'test@example.com',
  password: '123456',
  repeat_password: '123456',
  birth_year: 1990,
};
const result = schema.validate(data);
console.log(result);

위의 코드에서 Joi.object() 메서드를 사용하여 유효성을 검사할 스키마를 정의하고, validate() 메서드를 사용하여 데이터를 유효성 검사합니다. validate() 메서드는 유효성 검사에 실패하면 오류와 함께 유효하지 않은 필드를 반환합니다.

Express-validator를 사용한 데이터 유효성 검사

Express-validator는 Node.js의 Express 프레임워크를 위한 데이터 유효성 검사 미들웨어입니다. 아래는 Express-validator를 사용한 예제 코드입니다.

  1. 먼저 Express-validator 패키지를 설치합니다.
npm install express-validator
  1. 다음은 Express-validator를 사용하여 데이터 유효성을 검사하는 예제 코드입니다.
const { body, validationResult } = require('express-validator');

app.post('/user', 
  // 입력 데이터 유효성 검사 미들웨어
  body('username').isLength({ min: 3 }).trim().escape(),
  body('email').isEmail().normalizeEmail(),
  body('password').isLength({ min: 5 }).trim().escape(),
  (req, res) => {
    // 검사 결과 확인
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }
    // 유효한 데이터 처리
    // ...
  });

위의 코드에서 body() 메서드를 사용하여 각 필드의 유효성을 검사하고, validationResult() 메서드를 사용하여 유효성 검사 결과를 확인합니다. 유효성 검사 실패 시 오류를 반환하고 유효한 데이터를 처리합니다.

결론

Node.js를 사용하여 RESTful API를 개발할 때 데이터의 유효성을 검사하는 것은 매우 중요합니다. 위에서 소개한 JoiExpress-validator는 두 가지 인기있는 방법이며, 각각의 사용 사례에 따라 선택할 수 있습니다. 데이터 유효성 검사를 통해 안전하고 신뢰성 있는 API를 개발할 수 있습니다.

참고: