[NestJS] Param decorators

Param decorators

Nest는 HTTP 라우트 핸들러와 함께 사용할 수 있는 유용한 매개변수 데코레이터 세트를 제공합니다.

다음은 제공된 데코레이터와 이들이 나타내는 일반 Express(또는 Fastify) 객체의 목록과 사용 예시입니다.

@Param

Param은 Path Variable 을 받아올 때 사용합니다. (예, /users/123)

1
2
3
4
5
// NestJS
@Param(param?: string)

// ExpressJS
req.params / req.params[param]
1
2
3
4
5
6
7
8
9
import { Controller, Get, Param } from '@nestjs/common';

@Controller('users')
export class UserController {
@Get('/:id')
getOne(@Param('id') userId: string) {
return `This will return one user with the id: ${userId}`;
}
}

@Body

Body는 JSON 형식으로 받아올 때 사용합니다.

1
2
3
4
5
// NestJS
@Body(param?: string)

// ExpressJS
req.body / req.body[param]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { Body, Controller, Param, Patch, Post } from '@nestjs/common';

@Controller('users')
export class UserController {
@Post()
create(@Body() userData) {
return userData;
}

@Patch('/:id')
update(@Param('id') userId: string, @Body() updateData) {
return {
updateData: userId,
...updateData,
};
}
}

@Query

Query는 Query Parameter를 받아올 때 사용합니다. (예, /users?id=123)

1
2
3
4
5
// NestJS
@Query(param?: string)

// ExpressJS
req.query / req.query[param]
1
2
3
4
5
6
7
8
9
import { Controller, Get, Query } from '@nestjs/common';

@Controller('users')
export class UserController {
@Get('search')
search(@Query('id') userId: string) {
return `We are searching for a user made after: ${userId}`;
}
}

참고

Share