express-cargo 는 TypeScript 기반의 데코레이터 방식으로 반복적인 요청 데이터 처리를 깔끔하게 정리해주는 미들웨어입니다. req.body, req.query, req.params를 직접 다루지 않고 클래스 선언과 미들웨어 호출로 필요한 작업을 할수 있습니다.


설치 방법

npm install express-cargo reflect-metadata  

주요 특징

  • @body, @query, @param, @header, @session 데코레이터 지원
  • 하나의 클래스에서 body, query, header 등 다양한 요청 정보를 한번에 처리 가능
  • 클래스 필드 타입에 맞게 request 값 타입 자동 변환
  • @equal, @range, @length 등의 validation 데코레이터로 검증
  • @transform 을 이용해 값 변환
  • @virtual 을 이용해 다른 필드 값 참조해 값 설정

예시 코드

class RequestExample {  
    @body()  
    name!: string  
  
    @body()  
    @min(0)  
    age!: number  
  
    @params()  
    id!: number  
  
    @header()  
    authorization!: string  
}  
  
app.post('/:id', bindingCargo(RequestExample), (req, res) => {  
    const data = getCargo<RequestExample>(req)  
    // write your code with bound data  
})  

관련 링크


피드백 언제든지 환영합니다. 많이 사용해보시고 의견 부탁드립니다