에러 핸들링
1.
2.
2-1) 느낌표 위치
2-2) 공백 주의
참고
3.
수량이 36개 남았을 때
남은 36개 다 넣었을 때
장바구니 0개가 됨
장바구니 carts 테이블에
원래 있던
carts id 2 가 사라짐 --> 재고가 없기에
36개 담았던 장바구니에서 36개를 샀으니 없어지는 것
그리고 update가 아닌 delete 쿼리문이 쓰이는 걸 잘 확인
4. 근데 장바구니에 0개라서 주문이 들어가면 안 되는데,
위의 주문 번호 order id = 34가
orde 테이블에 생겼다는 것.
주문이 되니까
에러핸들링 해야함.
orderService.js 에서 _ create order 함수에서 에러 핸들링
카트에 없는 거 주뮨
카트 수량보다 많이 주문
trasaction -> 주문 디테일 실패ㅙㅛ는데도
주문 테이블에 추가되거 잇엇음
1) orders -> insert into
2) orders details -> insert into
3) carts -> update, delete
뒷단계 안 되면, 앞단계에서 한 정보가 데이터베이스로
넘어가지 않게
2번 주문 디테일 테이블에 저장에 안되는데
1번 순서에 주문 테이블엔 계속 저장돼서
order id 가 늘어나는 거
그러면 2번 안될때 3번 넘어가늠것도 해야
transaction
> 통신 실패할때에도 계속 order table에 쌓여서 orderid 숫자가 올라감
(orderDetails 테이블의 order_Id의 첫 칼럼이 1번이 아니라, 4번인 이유)
orders 테이블은 이만큼이나, orderDetails로 주문정보 저장(insert into 쿼리문 오류) 넘어가지 않아서 실패했는데도,
계속 주문정보 저장됨 (insert into)
이해하기 쉽게 코드로 보면
1) orders table -> insert into
2) order details table -> insert into
순서이기에, 1) 은 됐다 이거라며 혼자 저장하는 거 --> 그래서 transaction이 필요한 이유!
'Wecode - Project 3 (부트캠프) > Project 3 과정' 카테고리의 다른 글
Project 3: unit test, test code [개념] + 프로세스 (0) | 2023.10.20 |
---|---|
Project 3- 주문 api : postman 통신 성공 (if 에러 핸들링 x, transactionx) (0) | 2023.10.20 |
Project 3 : 주문 api postman 통신 방법 (if 에러 핸들링 x, transactionx) + 에러 해결 법 (0) | 2023.10.20 |
port 번호 끄기 (0) | 2023.10.19 |
mysql 에러 팁 (0) | 2023.10.19 |