Nest JS Status Code 설정하기
import {
Body,
Controller,
Get,
Param,
Post,
Query,
HttpCode, // 정상응답코드 지정
HttpStatus, // NestJS에서 제공하는 status 선택
} from '@nestjs/common';
// coffee 컨트롤러
// localhosg:3000/coffee url로 클라이언트에서 서버로 요청을 준다.
@Controller('coffee')
export class CoffeeController {
// body값을 읽기 위하여 Post요청을 만든다.
@Post()
// 응답할 코드를 지정
@HttpCode(HttpStatus.ACCEPTED) // ACCEPTED는 202코드 출력
create(
@Body('name') name : string,
@Body('message') message : string
) { // create에서 Body를 받을수 있도록 코딩한다.
console.log("request from client(POST)")
// 클라이언트에서 받은 body를 확인하기 위해서
// 다시 클라이언트로 응답한다.
return (`당신의 이름은 ${name}이고 보낸 메세지는 '${message}' 입니다.`);
}
}
위 코드에서 NestJS에서 제공해 주는 '@HttpCode'를 이용하여 정상적인 응답이 을 줄때의 status code를 클라이언트로 출력해 줍니다. 위 코드에서는 202를 출력하도록 설정되어 있습니다.
POST요청에 따른 응답이 202로 정상적으로 수신. NestJS로 응답의 status 코드를 정할수 있습니다.
import {
Body,
Controller,
Get,
Param,
Post,
Query,
HttpCode, // 정상응답코드 지정
HttpStatus, // NestJS에서 제공하는 status 선택
InternalServerErrorException, // 서버에러 status code : 500
} from '@nestjs/common';
// coffee 컨트롤러
// localhosg:3000/coffee url로 클라이언트에서 서버로 요청을 준다.
@Controller('coffee')
export class CoffeeController {
// body값을 읽기 위하여 Post요청을 만든다.
@Post()
// 응답할 코드를 지정
@HttpCode(HttpStatus.ACCEPTED) // ACCEPTED는 202코드 출력
create(
@Body('name') name : string,
@Body('message') message : string
) { // create에서 Body를 받을수 있도록 코딩한다.
console.log("request from client(POST)")
// 클라이언트에서 받은 body를 확인하기 위해서
// 다시 클라이언트로 응답한다.
throw new InternalServerErrorException("임의 에러 발생");
return (`당신의 이름은 ${name}이고 보낸 메세지는 '${message}' 입니다.`);
}
}
에러에 따른 status코드도 클라이언트에 보낼수 있습니다. 'throw new InternalServerErrorException()'을 사용하면 status코드가 500인 서버상 문제 메세지를 보낼수 있습니다.
이 외에도 다양한 코드를 출력할수 있는데 자세한 사항은 해당 링크를 참조해 주시기 바랍니다.
댓글
댓글 쓰기