# mysql 접속 후 cmarket 데이터베이스 생성
mysql> create database cmarket;# mysql 접속 종료 후 cmarket 데이터베이스에 스키마 복사, -D 옵션은 데이터베이스 지정
$ mysql -usiwoo -p < server/schema.sql -Dcmarket
# 복사된 테이블에 데이터 복사
$ mysql -usiwoo -p < server/seed.sql -Dcmarket
2. .env파일 설정
.env.example파일에서 해당계정의 비밀번호 입력 후 .env파일로 이름 변경
3. 서버 흐름
클라이언트에서 GET /items 요청이 들어오면,
'/'가 포함된 요청이면 indexRouter로 이동. indexRouter는 /route폴더에 index.js파일을 읽게 된다.
uri가 'items'라면 itemsRouter(items.js), 'users'라면 usersRouter(users.js)로 이동. 지금의 요청은 '/items'요청이므로 items.js로
RestApi의 Get method를 사용하였기에 routet.get()를 사용하여 컨트롤러의 items.get함수 호출
controller에서 model 컴포넌트의 items.get함수 호출함
db.query()를 이용하여 작성한 쿼리를 실행한 후, 콜백함수로 실패시 error, 성공시의 결과를 result를 전달.
다시 컨트롤러 이동하여 실패시 500 상태코드와 'Internal Server error' 텍스트를 클라이언트에 전달.
성공시 200 상태코드와 결과를 json형식으로 클라이언트에 전달한다.
4. '/users/:userId/orders' uri 요청 처리
Get 요청인 경우
/controller/index.js
/model/index.js
Post 요청인 경우엔
우선 orders 테이블에 유저아이디와 주문한 상품의 전체가격을 추가 해줌
orders테이블 id를 가져오고 싶으면, result.insertId를 사용하면 좀 전에 실행된 쿼리 결과의 id를 가져올 수 잇음.
주문정보의 각각의 상품의 정보를 담고 있기에 db.query()의 두번째 인자는 배열 형태로 들어온다.