ParseIntPipe는 NestJS에서 제공하는 파이프 중 하나로, 요청에서 전달된 문자열 데이터를 숫자로 변환하는 데 사용됩니다.
주요 사용 사례는 @Param() 데코레이터와 함께 특정 매개변수(parameter)를 변환하는 것입니다.
@Param('cardId', ParseIntPipe) cardId: number,
@Param('commentId', ParseIntPipe) commentId: number,
find,update 등 반환값 타입 지정
NestJS에서 서비스(Service) 메서드 위에 커서를 올리면 해당 메서드의 반환 타입을 확인할 수 있습니다.
반환 타입이 명확하면 코드 유지보수와 테스트가 쉬워지므로 반환값의 타입을 정의하는 것이 중요합니다.
Promise<Comment> : 결과값의 타입을 지정. 있어야 테스트 하기 쉬습니다.
async findOne(id: number): Promise<Comment> {
return this.commentRepository.findOne({ where: { id } });
}
service에서 반환값 없이 수치만 주고(반환값 타입 void) 컨트롤러에서 사용할 수 있다.
서비스 레이어에서 반환 타입을 void로 설정하면 결과를 반환하지 않고 단순히 작업을 처리합니다.
컨트롤러에서는 이를 기반으로 별도 로직(예: DB 조회, 이벤트 구독)을 통해 필요한 데이터를 활용하거나 결과를 처리할 수 있습니다.
async updateCount(): void {
// 내부 로직만 수행
console.log('Count updated.');
}
delete와 update는 "row[],affected: 1"이런 식으로 변환됨.
row에 답기고 affected에 데이터 유무가 표시되는 경우(있으면1, 없으면 0)
affected는 일반적으로 데이터베이스 작업의 결과로 영향을 받은 행(row)의 수를 나타내는 속성이나 값입니다. 데이터베이스에서 데이터를 삽입, 업데이트, 삭제하는 작업을 수행할 때, 몇 개의 행이 영향을 받았는지를 확인하는 데 사용됩니다.
삭제는 affected 가 0일경우 (값을 찾지 못했으니)오류 던지고
update는 업데이트한 데이터를 findOne로 가져와서 return하기
Swagger
만든 api가 자동으로 생김
서버키고 api주소로 들어가야 함 예) http://localhost:3000/api-docs#/
API Documentation & Design Tools for Teams | Swagger
Swagger and OpenAPI go hand‑in‑hand. Swagger offers powerful and easy to use tools to take full advantage of the OpenAPI Specification. See how we do it
swagger.io
@ApiTags('댓글CRUD')
@ApiOperation({ summary: '댓글 생성' }) <-- 자동으로 뜸
@ApiProperty({ example: '오혜성 바보' })
dto에 수정하면 자동으로 보임
'JavaScript > js 문법' 카테고리의 다른 글
NestJS 파일 생성 (0) | 2025.02.13 |
---|---|
모듈과 미들웨어의 차이 (0) | 2025.02.01 |
정규식 테스트 (1) | 2024.12.17 |
프리즈마(정리하기) (0) | 2024.12.05 |
(작성중)구조 분해할당 : 여러 변수를 한번에 할당하기 (0) | 2024.12.03 |