expressjs architecture

monkb·2021년 8월 8일
0

nodejs

목록 보기
1/4

nodejs를 사용하여 backend server를 개발 중이다.
architecture를 어떻게 구성해야될지는 아직도 고민이다.
아래와 같은 형태로 구성을 하려고 하는데, 개발을 진행 하다보면 각 계층에서 다른 계층의 역할을 수행하는 경우가 많아서 어떻게 처리해야할지 고민이다.
여러 포스트를 읽었지만 어떤게 맞는지 모르겠다.

src

  • routes
    - 자원의 위치를 표시하며, 어떤 컨트롤러 혹은 어떤 미들웨어를 사용할지를 다룬다.
  • controllers
    - 요청과 응답 객체를 다룬다.
    • Business logic은 다루지 않아야 한다.
    • request의 파라미터를 파싱하여 service layer에 전달
    • service layer에서 전달받은 DTO 객체를 client에 전달한다.
    • 에러 핸들링은 여기에서 처리한다. (try ... catch)
  • services
    - Business logic을 다룬다.
    • data layer에 대한 접근은 하지 않아야 한다.
    • data layer에 대한 접근은 model에서 처리한다.
    • request 혹은 response에 대한 처리를 하지 않아야 한다. (status code를 넘기면 안된다.)
      - 그러면 에러코드는 어떻게 처리해야 하나
      - Custom error hadler를 사용?
  • models (DAO, DTO)
    - DAO : data layer에 대한 접근을 담당한다. active record의 형태로 접근?
    - 그러면 여러 객체를 join하는 경우에는 어떤 객체가 담당해야 하는가?
    • DTO : DAO로부터 전달받아 service layer에서 가공하여 controller를 통해 client에 전달할 객체
  • middlewares
    -
  • configs
    -
  • lib
  • (subscribe)

src

  • user
  • auth
  • events

https://dev.to/santypk4/bulletproof-node-js-project-architecture-4epf
https://www.toptal.com/express-js/nodejs-typescript-rest-api-pt-2
https://medium.com/codechef-vit/a-better-project-structure-with-express-and-node-js-c23abc2d736f

profile
👨🏻‍💻👨🏽‍🦲

0개의 댓글