emluy 개발 일기

express.js - router 개념 (DB연동 후 CRUD 함수 작동 흐름) 본문

웹 개발/express.js

express.js - router 개념 (DB연동 후 CRUD 함수 작동 흐름)

yulme 2020. 7. 10. 17:48
SMALL

0. 알아야하는 개념

- Router

- Rest API

- CRUD

 

0. 필요한 프로그램

- postman

- DB

- VS code (express.js, nodemon)

 

0. 전체 흐름

:routes파일 -> models파일 -> controller 파일 -> models파일

주소로 함수 호출 

-> models파일은 DB다루는 CRUD함수 정의하는 용도 (사용자가 입력)

-> controller파일은 models 에서 준 데이터를 DB에서 읽을 수 있게 변환 후 올바른 데이터인지 판단, 옳은 데이터면 변환한 데이터를 models로 다시 리턴

-> models는 controller가 준 데이터를 DB에 CRUD함(쿼리사용)

 

* 예시 (개념)

: 회원가입 폼에 정보를 입력하면 Create 잘되는지 보자!

#디렉토리 구조

 

1. 주소로 create함수 호출 (실제로는 회원가입 눌렀을 때 주소가 저절로 불러와지면서 실행될것임)

#routes/join/user.routes.js (routes 폴더에 회원가입관련 라우터를 담을 join폴더를 생성하고 user.routes.js 파일을 생성한다.)

: 1,2번째 줄은 router사용시 필요한 것 import 해주는 코드

3번째 줄은 user.routes.js파일에서 호출할 controller 파일을 import 해주는 코드

6번째 줄은 /customer 주소를 입력했을 때 실행될 함수는 create다 라는 뜻

6에서 실행한 결과 router를 8번째 줄에서 module.exports를 통해 다른 파일로 넘김

 

2. models.js

: CRUD 함수들 정의 하는 곳 

# models/user.model.js

1) customer가 회원가입 폼에 입력한 것 가져옴 

*예시

this.user_id (DB에 있는 컬럼 이름 user_id에 저장) = customer.user_id(customer가 입력한 id)

 

2) customer가 회원가입을 요청하면 User.create함수가 호출 되면서 newUser를 인자로 받게됨 (newUser는 어디서 온애냐? controller파일에서 온애(customer가 입력한 데이터가 맞는지 확인하고 DB가 읽을 수 있게 변환한 후 리턴해준 애))

첫째줄에서 바로 controller파일로 넘어가는것!

3) newUser를 가져온다.

#controller/user.controller.js

: controller파일에서 create관련 함수 호출!

-> DB가 읽을 수 있도록 const user=new User({  이 부분을 통해 데이터 변환해줌

-> data에 에러 없으면 res.send(data)에 의해 models로 데이터 넘겨줌

 

 

 

 

4)models파일에서 DB에 CRUD

: 돌아온 후 두번째줄부터 controller에서 가져온 data로 DB에 CRUD한다.

반응형
Comments