리팩토링
역할에 따라 파일로 분리하자
• api/user/index.js
• api/user/user.ctrl.js
• api/user/user.spec.js
리팩토링을 하면서 리팩토링이 잘됬는지 알수있
복잡한 코드를 정리해보겠다.
./index.js
밑과 같게 api/user/index.js 파일을 만들자
새로 만든 api/user/index.js 파일이다.
근데 이렇게 나누면 문제가 생긴다. app이라는 어플리케이션 변수 express 객체가 정의되어 있지않다.
이 문제를 해결하기 위해서 라우터 객체다. 그래서 위에 코드를 보면 2번줄을 추가했다.
./index의 코드가 이렇게 줄었다.
11번 줄은 /users 모든경로에 대해서는 user 라우터를 사용하겠다는 의미
그래도 코드가 기능에 비해 많이 길다. 밑그림과 같이 드래그한 부분이 컨트롤러다.
컨트롤러 함수들을 따로 모아보자. api/user/index.js은 라우팅만 하고 그외에 로직들은 컨트롤러에게 위임하는 구조를 짜보자
모듈로 다 만들어서 공개하자
api/user/ctrl.user.js 파일에 users리스트를 넣고 변수마다 콜백함수를 배치하자
api/user/ctrl.userjs 에서 공개한 모듈을 3번줄과같이 받아온다음
함수들을 라우터마다 넣어주자
처음에 작성한 코드를 보면 오로지 서버를 구성하는 기능만 수행함
미들웨어 추가하는 부분이 핵심
그리고 index.spec.js 파일명을 user.spec.js 로 알맞게 변경하자
그리고 경로도 api/user 로 옮기자 그리고 패키지파일도 수정하자
'NodeJs' 카테고리의 다른 글
TDD[6] 사용자목록 및 사용자 상세정보 API개발 (0) | 2021.03.31 |
---|---|
TDD[5] TDD로 API 서버 개발 (0) | 2021.03.31 |
TDD[4] TDD 이해 및 환경 구축 (0) | 2021.03.31 |
TDD[3] REST API 이해와 설계 (0) | 2021.03.31 |
TDD[2] Express.js 역할 및 구조의 이해 (0) | 2021.03.31 |