간단한 CRUD 만들어보기
import { Controller, Delete, Get, Param, Post } from '@nestjs/common';
import { Body, Put, Query } from '@nestjs/common/decorators';
@Controller('movies')
export class MoviesController {
@Get()
getAll() {
return 'This will return all movies';
}
// 주의 해야 할 점
// :id 와 같은 동적 라우팅을 가진 getOne함수 아래에 같은 Get 메소드인 search함수가 있다면
// search의 값이 동적 라우팅의 값이 돼버린다.
@Get('search')
search(@Query('year') searchingYear: string) {
return `we are searching for a movie made after: ${searchingYear}`;
}
@Get(':id')
getOne(@Param('id') movieId: string) {
return `This will return one movie with the id: ${movieId}`;
}
@Post()
cerate(@Body() movieData) {
console.log(movieData);
return movieData;
}
@Delete(':id')
remove(@Param('id') movieId: string) {
return `This will delete a movie with the id: ${movieId}`;
}
@Put(':id')
patch(@Param('id') movieId: string, @Body() updateData) {
return {
updatedMovie: movieId,
...updateData,
};
}
}
간단한 CRUD를 작성해보았다.
핵심
- 데코레이터를 활용하여 메소드를 정의해준다. (정의한 데코레이터와 함수는 둘 사이에 공백이 있어선 안된다.)
- Post, Put, Patch 등 사용자에게 데이터를 받아야 하는 메소드들의 경우 함수에 직접 Params 혹은 Body를 받을 건지 명시를 해줘야 한다. (해주지 않으면 에러 발생)
/:id
는 Dynamic routing과 같은 방식.
'Nest.js' 카테고리의 다른 글
[Nest.js] Nest.js + PostgreSQL + typeORM CRUD 구현하기 1 (1) | 2023.01.26 |
---|---|
[Nest.js] Providers란? (0) | 2023.01.25 |
[Nest.js] jest를 이용한 테스트 코드 작성 (0) | 2023.01.13 |
[Nest.js] DTO, 모듈화, ValidationPipe 실습 (0) | 2023.01.12 |
[Nest.js] Nest 설치 (0) | 2023.01.11 |