coding/Nest JS

Nest JS 파이프

JIN_Coder 2022. 11. 1. 15:53

Pipe란

@Injectable() 데코레이터로 주석이 달린 클래스로 data transformation, data validation을 위해 사용됨

Nest는 메서드가 호출되기 직전에 파이프를 삽입하고 파이프는 메서드로 향하는 인수를 수신하고 이데 대해 작동함

 

Data Transformation이란

입력 데이터를 원하는 형식으로 변환(ex. 문자열 -> 정수)

 

Data Validation이란

입력 데이터를 평가하고 유효한 경우 변경되지 않는 상태로 전달, 그렇지 않으면 데이터가 올바르지 않다고 예외를 발생시킴

 

Pipe 사용 위치

- Handler-level Pipes

핸들러 레벨에서 @UserPipes() 데코레이터를 이용해 사용

모든 파라미터에 적용

@Post()
@UsePipes(pipe)
createBoard(
	@Body("title") title,
    @Body("description") description,
) {}

 

- Parameter-level Pipes

특정한 파라미터에게만 적용되는 파이프

@Post()
createBoard(
	@Body("title", ParamerPipe) title,
    @Body("description") description,
) {}

 

- Global Pipes

클라이언트에서 들어오는 모든 요청에 적용

가장 상단 영역인 main.ts에 넣어서 사용

async funtion bootstrap(){
	const app = await NestFactory.create(AppModule);
    app.useGlobalPipes(GlobalPipes);
    await app.listen(3000);
}
bootstrap();

 

 

파이프를 이용한 유효성 체크

npm install class-validator class-transformer --save

 

'coding > Nest JS' 카테고리의 다른 글

PostgresSQL TypeORM  (0) 2022.11.03
Nest JS CRUD  (0) 2022.10.31
Nest JS 개념 및 설치  (0) 2022.10.29