Express-Routes를 위한 연결
# Server API를 보면 쿼리(?)가 아닌 url-path를 확인한다.
# POST /users/:userId/orders 와 GET /users/:userId/orders 로 이루어져 있으므로 /userId/orders로 명시한다.
# 해당 url-path가 작동할 컨트롤러를 구현한다.
controllers 구현
# 각 메소드에서 요청할 파라미터들을 각각의 처리할 models로 보내게위해 인자로 넣는다.
# 들어올 파라미터가 없으면 status로 실패코드를 보내게된다.
# error또는 result는 콜백으로 model에서 처리한후 다시 결과가 들어와 처리된다.
models 구현
# userId를 인자로 받아 orders.user_id와 일치하는 것들중 모든 주문내역 이므로 item에 대한 내용,주문내역,주문item등을뽑아와야하므로 제일 안쪽인 item,order_items,orders를 서로 연결하는 key(pk=fk)로 ON을 처리하여 SELECT한다.
# Post에서 필터할 4개의 인자를 받는다.
# 우선 특정 user가 접수한 주문목록이 쌓이는 orders에 테이블을 추가하기 위해 user_id와 total_price를 받아온 인자로 INSERT INTO 한다.
# 처리가 ERROR날시 콜백으로 (ERROR,NULL)을 보내 종료시켜버린다.
# 처리가 성공일시 orders와 연결된 order_items에도 order_id에 금방 생성한 orders의 PK ID가 들어가고 ItemId와 quantity가 쌓여야한다.
# VALUE에 ? 를 주어 params로 변수를 만들어 통째로 bulk table 할수 있도록 만든다.
# params로 들어올 orders를 풀기위해 map을 써서 params를 2차원배열로 만들어준다.
# 위에서 성공적으로 처리된 result의 insertId를 쓰면 바로 orders의 PK ID가 들어가게 된다.
# params가 2차원배열로 여러값이 들어가 있을시 [params]로 배열에 넣는다.
[참조]
INSERT INTO의 생성된 테이블의 Id(PK) 바로 쓰는 result.insertId와 params로 여러레코드 삽입
'개발 일지' 카테고리의 다른 글
S2: auth-token (0) | 2021.11.01 |
---|---|
S2: auth-session 구현 (0) | 2021.11.01 |
S1: stringify 재귀함수로 만들기 (0) | 2021.09.27 |
S1: Stack로 브라우저 뒤로가기 앞으로가기 구현 (0) | 2021.09.25 |
S1: QUE로 순서처리구현 / findIndex, Splice, Math.max (0) | 2021.09.25 |
댓글