Wecode - Project 3 (부트캠프) 87

Project 3 - [결제 api] 완성 - 포인트 차감

접근 방식: 주문/결제 후 장바구니에서 수량/변경 및 삭제 한 것과 같은 로직 user 포인트 - product price 로 update 쿼리문 userId로 points 뽑아와서, select하고, update 퀴리문 나오는 순서. controller와 router는 변함이 없고, orderDao, orderService만 변경 및 추가된다 orderService.js 2) 결제 추가 orderService.js 자세히 보면 첫번째 코드는, orderDao에서 가져온 userId가 겹치는 것에 해당하는 Points를 가져온 isUserPoints 에 제품 가격을 뺀다. 그 남은 포인트 (remainPoints)를 orderDao로 보낸다. 그러면 orderDao에서는 orderService에서 upd..

Project 3: unit test, test code [개념] + 프로세스

테스트 코드를 계획 및 작성하는 이유: 사전에 에러를 방지하여 더 높은 품질의 소프트웨어를 제공하기 위함 기능 추가, 버그 수정, 리팩토링을 진행하면서 개발자는 다양한 실수를 할 수 있음 개발자는 직접 의도한 대로 동작하는지 테스트하는 코드를 작성하여 사전에 미리 실수를 잡아내고 코드를 올바르게 수정 테스트를 통해 소프트웨어 개발 전반적인 부분에서 발생할 수 있는 에러를 미리 찾아낸다는 것은 테스트 환경이 실제로 서비스가 배포되는 환경과 일치해야 한다는 것 0. 프로젝트 구조 app.js ,server.js 분리하기 서버 가동에 필요한 모든 코드가 app.js에 포함된 방식이 아닌, app.js와 server.js로 분리하는 방식으로 변경 app.js const express = require("expr..

Project 3- node.js 로 토스 페이먼츠 결제 외부 모듈 적용하는 법 **

node.js 로 토스 페이먼츠 결제 외부 모듈 적용하는 법 토스(Toss) 결제를 Node.js 애플리케이션에 통합하려면 Toss 결제 API를 사용하여 결제 흐름을 구축해야 합니다. 아래는 Node.js 애플리케이션에서 Toss 결제를 통합하는 단계입니다: 1. Toss API 키 발급 및 설정: Toss 결제를 사용하려면 먼저 Toss 개발자 계정을 생성하고 API 키를 발급받아야 합니다. API 키를 발급받은 후, 해당 키를 애플리케이션 환경 변수 또는 설정 파일에 저장합니다. 2. Node.js 애플리케이션 설정: Node.js 애플리케이션에서 Toss 결제를 사용하기 위해 필요한 모듈을 설치합니다. 토스 결제 API를 사용하기 위한 공식 SDK가 제공되지 않는 경우, HTTP 요청을 직접 만들..

Project 3- 주문 api : postman 통신 성공 (if 에러 핸들링 x, transactionx)

이후 여러 개 제품을 담는 걸로 수정된 api 통신 문제 [수정 사항] 1. controller -> req.userId = req. body는 아래에 또 들어가 있어서 뺌 전 후 2. orderid 는 빼도 됨 > order 테이블에 저장하면 자동으로 id 생기고 > orderdetails 는 order에서 받은 userid도 필요없음 orderdetails에서 orderid 받아서 거기에 userid 있으니까 (orderdetails 테이블 키는 애초에 orderid product id, cartid만 필요) controller service.js 안그래도 postman body에 orderId 있는 거 보면서 이상하더라 body에 왜 orderid를 보내지? newOrder 함수로 자동 생기는데 ㅇ..

Project 3: [주문 api] - if 에러 핸들링, transaction

에러 핸들링 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 -> 주문 디테일 실패ㅙㅛ는데도 주..

Project 3 : 주문 api postman 통신 방법 (if 에러 핸들링 x, transactionx) + 에러 해결 법

vscode의 mysql 확장자 사용 -> 주문 결제 시 간편 1. carts 수량 넉넉히 넣어두고 (테스트 해야 하니까) ( + 버튼 누르면 됨) 2. user 만들고 (created at dms 자동생성되니 냅두고) 3. product 만들고 (아래에 product_category_id 참고해서 넣고) 4. 그러다가, 아 하고 product categories 만들고 (저장하면서 이동 해야 한다 _ 연두색 체크 버튼 _ 다 달라감) 5. body 에 보내야 하는 게 payment id도 있어서 만들고 6. 만든 테이블 참고해서 어떤 user 인지 userid , payment id, product id 는 내가 만든 각 user / payment /product 테이블 참고해서 넣고 total pri..

mysql 에러 팁

1. 대부분이 칼럼명, key 명에 s 를 붙였냐 안 붙였냐 이다 에러에 힌트로, field_list: 칼럼명에 s 가 없다 clause : 절에 s가 없다 알려준다 또 다른 's'를 안 붙여서 생긴 오류 팁 : 쿼리문 쓸 때, 위에 앞서서 desc 혹은 select * from 테이블명 해서 보는 면서 치면 실수가 줄어든다 2. 퀴리문을 더 찍어내야 할 때, 조건이 잘못되거나 그럴 때, left join / where 절 등 일단 쿼리문을 SELECT actors.id AS actor_id, actors.name AS actor_name, actors.agency_id, movies_actors.movie_id, movies_actors.actor_id FROM actors LEFT JOIN movie..