node 진영에서 자주 쓰이는 유효성 검사 라이브러리로 Joi, class-validator 2가지 정도가 있는 것 같다.

이중에서 각각의 특징을 비교해보고 어떤 라이브러리로 유효성 검사를 할 지 선택하자

Joi

import * as Joi from 'joi';

const schema = Joi.object({
  username: Joi.string().alphanum().min(3).max(30).required(),
  password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
});

class-validator

import { IsString, IsNotEmpty, MinLength, MaxLength } from 'class-validator';

class CreateUserDto {
  @IsString()
  @IsNotEmpty()
  @MinLength(3)
  @MaxLength(30)
  username: string;

  @IsString()
  @IsNotEmpty()
  @MinLength(6)
  @MaxLength(30)
  password: string;
}

생각 정리