본문으로 건너뛰기

중첩 객체 바인딩

Express-Cargo를 사용하면 요청 내 중첩 객체를 처리할 수 있으며, 중첩 객체를 자동 바인딩하면서 재귀적인 타입 캐스팅과 검증을 지원합니다.

사용 예시

import express, { Request, Response } from 'express'
import { body, bindingCargo, getCargo } from 'express-cargo'

// 1. 중첩 객체 정의
class Profile {
@body('nickname')
nickname!: string
}

class ExampleObject {
@body('profile')
profile!: Profile
}

// 2. Express 앱과 라우트 설정
const app = express()
app.use(express.json())

app.post('/submit', bindingCargo(ExampleObject), (req: Request, res: Response) => {
const requestData = getCargo<ExampleObject>(req)

res.json({
message: '중첩 객체가 성공적으로 바인딩되었습니다!',
data: requestData,
})
})

/*
이 엔드포인트를 테스트하려면 /submit에 POST 요청을 보내세요.

예시 요청 URL:
http://localhost:3000/submit
*/

출력 예시

중첩된 profile 객체가 포함된 POST 요청이 전송되면, bindingCargo 미들웨어가 중첩 ExampleObject를 자동으로 인스턴스화하고 검증합니다. 이후 getCargo 함수는 중첩 데이터가 모두 채워진 객체를 반환합니다.

{
"message": "중첩 객체가 성공적으로 바인딩되었습니다!",
"data": {
"profile": {
"nickname": "coder123"
}
}
}