본문 바로가기

Development/Javascript

[Node.js] Typescript용 Controller(Like a Spring MVC) 3가지

728x90

1. tsoa - https://github.com/lukeautry/tsoa

2. Trafficlight - https://github.com/swimlane/trafficlight

3. routing-controllers - https://github.com/typestack/routing-controllers

4. nest.js(추가함) - https://nestjs.com/

셋 중에 난 3번 routing-controllers를 선택했다. star도 많고 코드가 제일 깔끔해보였다. 그리고 이미 typedi하고 연계를 잘 해놔써 typedi를 쓰는 내가 선택할 건 3번 뿐이긴 했다. 혹시나 DI 중에 inversify를 사용한다면 1번 tosa도 고려해볼만 하다. swagger도 지원되고 좋은 듯 싶다. 하지만 난 typeorm과 type-graphql를 쓰고 있어서 세가지 라이브러리들이 공통적으로 지원하는 typedi를 사용하려면 routing-controllers밖에 없었다 ㅋㅋ 

단점이라고 해야 하나 아직 reflect가 덜 지원되서 그런가 decorator(@Get @Post 등) 상속이 안 되는 듯 싶다. 공통 Controller를 디자인해서 상속받아 쓰게 하고 싶었지만 부모 클래스의 Decorator를 가져오기도 힘들고 뭔가 잘 안 된다ㅠㅠ

그리고 trafficlight는 이름을 정말 잘 지은 멋진 라이브러리인 것 같다. 신기한 건 swimlane에서 만들고 있는 라우팅 컨트롤러이다. 이 집단은 뭐지 angular 관련 라이브러리도 많이 만들고 대체 뭐하는 단체인지 대단하다. 이제 라우팅쪽까지 ㅎㄷㄷ


ps. 지금은 nest.js 사용 중....;; nest.js에 대한 포스팅은 프로젝트 끝나고 시간 날 때 작성할 생각이다.

반응형