일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Spring
- Django
- html cell
- html cell size
- table tag
- table cell size
- html
- Django column 값 가져오기
- DI
- Django 특정 값 가져오기
- Dependency
- Dependency Injection
- Today
- Total
emluy 개발 일기
express.js - router 개념 (DB연동 후 CRUD 함수 작동 흐름) 본문
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한다.
'웹 개발 > express.js' 카테고리의 다른 글
Express.js - 라우팅 (0) | 2020.07.30 |
---|---|
express.js - 미들웨어 (0) | 2020.07.30 |
Express.js를 왜 쓸까? & 습득 과정 (0) | 2020.07.30 |
Express.js - 손으로 하나하나 코드 작성하는 server 실행하기 (서버 개념알기위한 실행일뿐 쓰이진 않음) (0) | 2020.07.30 |
express.js - frontend 부분 동작 과정 (0) | 2020.07.10 |