팀원들과 layered pattern을 하면서 어려웠던 점을 공유하며, 다시 복기 했다.
공통적으로 어려웠던 점
- 어떤 걸 app.js에 남겨야 하는지 어떤걸 넘겨야 하는지 (연결 부분)
- import, export연결 (우리는 import 안하고,require로 )
middlewear
- 에러 담당 middlewear로 가기에
- error를 다 선언 하지 않아도 됨
- error하는 함수 자체를 다 빼서 하는거
utility안에 함수
middlewear는 next 를 갖고 있는 함수
일반 middlewear는 res,req,next 3개 받는데,
error 전용 middlewear는
req가 아니라 err, res req, next 4개
그래서 모든 router에 error처리 없이 넘기면됨
next ( )
next를 쓰면, 그 함수를 실행해주고, next뒤의 함수를 실행시킴
next는 다른 파일에 선언되어있음-> 그래서, next가 실행시키는 함수가 뭔지를 보려면,
다른 파일에 next가 어딨는지를 봐야 한다.
1. 어느 파일에, next가 있는지/ 그 next가 뭘르 부르는지
2. 아니면 ctrl + F로 찾기하던가
3. 보통은 함수를, command+ click 하면 그 함수로 보내줌
try( 안의 next()가 있어야, 그다음줄로 넘어감. 한줄씩)
근데 만약 에러를 부르면, try안의 next가 아니라, 밑의 catch 의 next()를 가져감
next() 뒤에 보통 함수가 온다.
분리 작업 순서 및 흐름
layered pattern 익숙해지고 나면, 처음부터 나눠서 하는 게 좋은데, (router- controller- service- model)
이미 작업을 app.js에서 작업을 한 다음, 분리할 거면 Dao부터 하는게 좋음
(역순으로)
1.dao (database 관련)
app.js에서 db를 갔다 오는게 뭘 가야할지 파악
다 빼기
날것으로 붙이고
1-1. const로 함수 이름 넣어놓고
매개변수는 나중에
2. dato 안에서 datasource 도 빼야 함
그래서데이터소스 불러오는 거는 다 빼기
빼고 나서 색 안 들어오면 필요없는거
{ }dls dldbsms --> rorcp w 함수를 api로 줄때에도 타고 타고 ㄷ르어가서 해야 함
주소가 뭘까? 할때 --> 하위경로이니, 상위폴더로 가서 실행시킨 후 가야하니,
api에 앞에 붙여야 함.
현재.니까
./ (동일선사잉니까)
내보내기 module로
datasource 내보내겟다
그럼 dao 가서 reuqire로 가져오겟다
연결됏느닞 확인하려면 클리갷야만
index.js는 폴더마다 있음
그 안에서, 파일이 아닌, 폴더명만 가져옴
알아서 다 불러줌
이렇게 userController파일로 하나씩 하는 거보다,
파일을 폴더로 묶어줘서, 보내줌
일반 node modules에서는 일반 폴더로는 불러올 수 없음. 그래서 index.js 사용해야 함
node modules에 index.js가 있어서,
index.js로 일반폴더를 package.json처럼 패키지화 한 것.
'Wecode - Project 2 (부트캠프) > Project 2 과정' 카테고리의 다른 글
Project 2- 3일차: 백엔드 플랜 미팅 part1. dbmate [데이터베이스 생성] (0) | 2023.09.20 |
---|---|
Project 2- 3일 차: API 짜기 연습 ** (0) | 2023.09.20 |
Product2 - 2일차(1) : ERD modeling (0) | 2023.09.19 |
Project 2- 2일차 (4): [erd 모델링] 각자 작성 후 다같이 수정 및 리뷰 (0) | 2023.09.19 |
Project 2 - 2일차(0) : Standup Meeting (0) | 2023.09.19 |