새소식

BE/NestJS

NestJS : DB Schema 설계 및 Validation

  • -

Nest Js MongoDB Schema 공식 문서: https://docs.nestjs.com/techniques/mongodb

DB Schema 설계 - cats.schema.ts

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document, SchemaOptions } from 'mongoose';

const options: SchemaOptions = {
  timestamps: true,
};

@Schema(options) // schema 정의
export class Cat extend Document{
  @Prop({
    required: true,
    unique: true,
  })
  email: string;
  
  @Prop({
    required: true,
  })
  name: string;

  @Prop({
    required: true,
  })
  password: string;
}

export const CatSchema = SchemaFactory.createForClass(Cat);

@Prop() 데코레이터는 document의 속성을 정의

 

 

 


DB Schema Validation 설정 - cats.schema.ts

Nest Js Validation 공식 문서: https://docs.nestjs.com/pipes#class-validator

$ npm i --save class-validator class-transformer

@IsEmail() @IsNotEmpty() @IsString() 과 같이 호출하여 간단히 사용이 가능하다.

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

@Schema(options)
export class Cat extends Document {
  @Prop({
    required: true,
    unique: true,
  })
  @IsEmail()
  @IsNotEmpty()
  email: string;
  
  @Prop({
    required: true,
  })
  @IsString()
  @IsNotEmpty()
  name: string;
 }

 

 

 

728x90

'BE > NestJS' 카테고리의 다른 글

NestJS : CORS  (0) 2022.06.03
NestJS : swagger  (0) 2022.06.02
NestJS : DTO 패턴 & 회원가입 service  (0) 2022.05.29
NestJS : MongoDB 연결 및 환경 변수 설정  (0) 2022.05.28
NestJS : 로직  (0) 2022.05.28
Contents