router
경로 단위 분리
/api/users 같은 리소스별 라우터로 params, query, body
타입을 좁힙니다.
Express + TypeScript
라우터, 미들웨어, 핸들러, 에러 처리의 역할을 분리하면
Request 제네릭과 커스텀 Request 확장이 문서처럼 읽힙니다.
router
/api/users 같은 리소스별 라우터로 params, query, body
타입을 좁힙니다.
middleware
인증 사용자나 요청 로그처럼 공통 값은 미들웨어에서 붙이고 타입 확장을 함께 둡니다.
handler
핸들러는 필요한 입력만 받고 res.json의 응답 모델을
일관되게 반환합니다.
error
에러 미들웨어는 예외를 한곳에서 상태 코드와 메시지 형식으로 변환합니다.
nodemon과 ts-node로 수정 즉시 타입 오류를
확인합니다.
tsc로 빌드한 dist 파일을 Node.js에서
실행합니다.
요청과 응답 타입을 공유하면 프론트엔드와 백엔드 계약이 흔들리지 않습니다.