본문 바로가기

학습 내용 정리/nest.js

Nest.js Fundamentals - 2. Creating a REST API application (1)

728x90
npm run start:dev

watch mode가 되어 코드 변화를 감지한다.

코드변경 > 빌드 > 서버 재시작

 

nest generate controller
// 또는 nest g co

nest generate controller 파일 경로 
// 그 경로에 controller를 만들어 줌

 

파일 명령어 결과 미리보기 

--dry-run

nest g co modules/abc --dry-run

 

 

@Get 데코레이터 

import { Controller, Get } from '@nestjs/common';

@Controller('coffees')
export class CoffeesController {
  @Get('flavors')
  findAll() {
    return 'This action returns all coffees';
  }
}

 

param으로 id를 받아서 집어 넣기 

  @Get(':id')
  findOne(@Param('id') id: string) {
    return `This action returns #${id} coffee`;
  }
}

 

@Body 데코레이터

  @Post()
  create(@Body() body) {
    return body;
    // return `This action creates a coffee`
  }

 

@HTTPCode

  @Post()
  @HttpCode(HttpStatus.GONE)
  create(@Body() body) {
    return body;
    // return `This action creates a coffee`
  }

 

 

@Res

Nest.js는 내부적으로 express를 사용하고 있기 때문에 Res 데코레이터를 이용해서 express 와 같이 표현할 수 있다.

 @Get('flavors')
  findAll(@Res() response) {
    response.status(200).send('This action returns all coffees');
  }

 

@Put 

전체를 바꿀 때 사용

 

@Patch 

일부를 바꿀 때 사용

  @Patch(':id')
  update(@Param('id') id: string, @Body() body) {
    return `This action updates #${id} coffee`;
  }

@Delete

@Delete(':id')
  remove(@Param('id') id: string, @Body() body) {
    return `This action removes #${id} coffee`;
  }

 

pagination

  @Get('flavors')
  findAll(@Query() paginationQuery) {
    const { limit, offset } = paginationQuery;
    return `This action returns all coffees. Limit: ${limit}, Offset : ${offset}`;
  }

참고 자료 : https://learn.nestjs.com/p/fundamentals

'학습 내용 정리 > nest.js' 카테고리의 다른 글

Nest.js Fundamentals - 1. Getting Started  (0) 2024.01.28