! 읽기 전
이 시리즈에 있는 모든 글은 블로그 지향 기반 개발 & 공식 문서 기반으로 작성되었습니다 내용은 정확하지 않을 수도 있으며, 100% 신뢰하지 마시길 바랍니다
기능 | Nest | Spring |
---|---|---|
라우팅 | @Controller() | @RequestMapping |
http 메소드 지정 | @Get(), @Post() … 등등 | @GetMapping(), @PostMapping 등등… |
example
패턴 기반 경로도 지원됨
@Get('ab*cd')
→ 이런식으로
Nest | req |
---|---|
@Request() | req |
@Response() | res* |
@Next() | next |
@Session() | req.session |
@Param(key?: string) | req.params / req.params[key] |
@Body(key?: string) | req.body / req.body[key] |
@Query(key?: string) | req.query / req.query[key] |
@Headers(name?: string) | req.headers / req.headers[name] |
여러가지 request를 받는 방법
example
@HttpCode(204)
→ 이렇게 씀@Header('Cache-Control', 'none')
→ 이렇게 씀@Controller('cats')
export class CatsController {
@Get()
@HttpCode(204)
@Header('Cache-Control', 'none')
findAll() {
// TODO...
}
}
경로 등록 순서가 있음!!
만약 아래 코드처럼 작성 시에 @Get()에 절 - 대 도달하지 않음
@Controller('cats')
export class CatsController {
@Get(':id')
findOne(@Param('id') id: string) {
return `This action returns a #${id} cat`;
}
@Get()
findAll() {
// This endpoint will never get called
// because the "/cats" request is going
// to be captured by the "/cats/:id" route handler
}
}
갠적으로 제일 중요한듯 Controller 부분에서.
이렇게 만든 controller는 Module에 controllers에 추가해줍니다
@Module({
imports: [],
controllers: [CatsController],
})
export classAppModule {}