스크린샷 2023-12-06 오전 9.12.20.png

클래스 데코레이터

@Module()

모듈 클래스를 정의

@Controller()

컨트롤러 클래스

@Injectable()

서비스 클래스

메서드 데코레이터

HTTP 요청 데코레이터

import { Controller, Get, Post, Put, Delete } from '@nesetjs/common';

@Controller('cats')
export class CatsController {
	@Get()
	findAll() {
		// 모든 고양이를 반환합니다.
	}

	@Post()
	create() {
		// 새로운 고양이를 생성합니다.
	}

	@Put(':id')
	update(id: string) {
		// 특정 고양이의 정보를 업데이트합니다.
	}
	
	@Delete(':id')
	remove(id: string) {
		// 특정 고양이를 삭제합니다.
	}
}

매개변수 데코레이터

@Req(), @Res()

import { Controller, Get, Req, Res } from '@nestjs/common';
import { Request, Response } from 'express';

@Controller('cats')
export class CatsController {
	@Get()
	findall(@Req() request: Requeset, @Res() response: Response): Response {
	cosole.log(request.url);
	return response.status(200).send('All cats');
	}
}

@Body(), @Query(), @Param()

import { Controller, Post, Body, Param, Query } from '@nestjs/common';
import { CreateCatHomeDto } from './dto/create-cat-home.dto';

@Contorller('cats')
export class CatsController {
	@Post('/:name/home')
	createCatHome(
		@Param('name') name: string,
		@Query('type') type: string,
		@Body() createCatHomeDto: CreateCatHomeDto
	) {
		// createCatHomeDto를 사용하여 :name을 가진 고양이의 집을 만들어 줍니다.
	}
}

컨트롤러의 메서드에서 들어오는 요청을 처리 할때 필요한 데이터를 추출하는데 사용

속성 데코레이터

import { Entity, Column, PrimaryGeneratiedColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm';

@Entity()
export class Cat {
	@PrimaryGeneratedColumn()
	id: number;

	@Column()
	name: string;

	@Column()
	age: number;

	@CreateDateColumn()
	createdAt: Date;

	@UpdateDateColumn()
	updatedAt: Date;
}

클래스의 속성에 추가적인 메타데이터를 제공 하거 나 속성의 동작을 변경하는데 사용