Wecode - Project 3 (부트캠프)/Project 3 독학 27

에러 핸들링 w/ [asyncwrap, next, ErrorHandler.js ]

동기 분께서 설명해주신 부분 1) async를 쓸 때 controller.js 에서 try, catch 지우고 errorHandler.js 사용 ( 에러 시 일로 감) 1-1) errorHandler.js 에서 next 사용 X 1-2) errorHandler.js 에서 next 사용 2) async를 안 쓸 때 - controller.js 에서 try/catch를 쓴다 --> service.js에서 throw로 에러를 던진다 (그러니까 controller.js에서 catch로 잡는 것) (controller.js에서 try/catch쓰면, 가장 가까운 try catch로 가서 2-1) next 호출 --> error handler로 보냄 2-2) res.status // next(error) 사용x :..

middlewware 공부 , errorhandler, async

에러 핸들링 2 [적용] 1. throw로 에러 던져보기 에러를 던지는 방법으로 throw 이는 개발자가 작성하는 모듈에서 발생가능한 에러 상황에서 던지게 되며 상위 계층이나 호출하는 곳에서 모듈의 에러를 감지할 수 있습니 pm-developer-justdoit.tistory.com Middleware -> err, res, req, next를 받음 (errorhandler.js처럼) Client -> req -> Router -> Controller-> services -> models -> services -> controller -> res Express.js에서 미들웨어는 app.use() 함수로 추가 Express.js 쓸 거면, next 쓰는 게 좋음 app.js에 있는 app.use가 미들웨..

에러 핸들링 3 [각 Layer 별 Error Handling] 개념 + 실제

각 레이어 별 에러 Controller - Service - Dao 각 레이어 별로 각기 다른 목적을 위한 에러 핸들링 에러가 발생하는 위치와 실제 에러 메세지를 던지는 위치가 실제와 상이할 수 각 레이어별 에러 핸들링 시 동기, 비동기적 에러 처리에 유의하여 코드를 작성 1. Controller Error 입력과 출력에 관련 HTTP 통신을 처리하는 웹 서버의 관점에서는 http request (요청 입력), http response (응답 출력)을 담당하는 레이어 따라서 통신이 처음 시작될 때, 사용자로 부터 받은 정보를 클라이언트(프론트엔드)가 전달해주면, 해당 입력에 대한 유효성 검증을 처리하며 에러 및 예외가 발생 KEY_ERROR가 대표적 console.log(req.body) // { pas..

git clone + 추가 branch 관련 명령어

개인저장소에 올린 코드를 활용하거나, 팀이 만든 초기세팅을 받은 후 개발을 시작할 떄에 clone을 많이 하게 되는데, 할 때마다 헷갈리니 정리해두기 1. github repository 주소 복사 Code - HTTPS - 복수 후 체크 표시됨 2. 터미널로 가서. git clone [복사한 repository 주소 붙여넣기] 만약 main에 다 넣을 거면 (보통 개인 프로젝트) 상관없는데, 팀 프로젝트라면, main에 넣으면 안 되니, 브랜치 생성 3. cd 클론 받은 폴더명 (위치 이동) 개별 브랜치 생성 git branch [branch 이름] 그 후, checkout으로 브랜치 이동해야 한다. 아직 main에 있을 것이기에. [추가 branch 관련 명령어] 브랜치 이동 git checkout..

git cache [.gitignore에 있지만 repository에 올라간 파일 없애기]

이후에 파일 추가를 하는데 repository에 올라가면 안 되는 경우, 1. .gitignore에 추가를 한다 그냥 텍스트로 typing하면 된다 2. 그런데 이미 그 전에 git add. git commit을 해서 repository에 올라가 있다. git cache 를 해야 한다 깃허브에 올리면 안되는 정보는 .env 파일에 환경변수로 저장하고 .gitignore 에 등록해야 합니다. 이 부분을 깜빡해고 커밋 푸쉬를 했다면 git rebase 로 해당 커밋을 지워도 캐시가 남아서 지워줘야 함. 캐쉬 삭제 명렁어 git rm -r --cached . 다시 확인해보니 사라져있다.

[깃허브 reset -- hard 에러 해결] git pull origin main 시 commit 남기라고 할 때

다음과 같은 에러 뜰 때: 여러 번 떴던 오류 깃허브 remote- main에 있는 commit과 내 로컬에 있는 main의 commit 내역의 차이가 있어서 그런 것. ( = 꼬인 것) 그래서 내가 해야 할 것은, 내 로컬 main에 있는 commit 내역과 깃허브 main에 있는 commit history를 비교해서, 같은 거 있는 거 까지 봐서, 그 상태 전으로 돌려놓고, 다시 지금 remote main을 pull 받아서 내 로컬 main을 최신화 시키면 됨 1. remote : main > commit history 와 나의 로컬: git main > git log 비교 그런데, git remote repository를 들어가면, 이전께 안 나온다. 그것은, 이전 페이지로 가야 하는 것. olde..

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 요청을 직접 만들..

- Api 작성 팁

함수명 스펠링 /카멜케이스 틀려서 통신 안 되는 경우 있으니, 복사 붙여넣기 하거나 자동 으로 나오는 거 클릭하기 --> 함수명 뿐만 아니라, res,req값도 보기 좋게 다시 보여주면 여러 함수를 쓸 때, 형태 같다고 한버넹 뭉땡이로 복붙하면, 잘못하고 안 바꾼거 생기고 많은 정보에서 나중에 에러 찾기 힘드니 한줄씩 복붙하기, 결과적으로 그게 더 빠름 그리고 CRUD에서 레이어드 후 통신이 안 되면, 에러 못 찾겠고 그러면 일단 주문 api 짜면서 그 플로우를 다시 생각하면서 머리가 혈류가 뚫리면서 다시 되돌아가서 CRUD 찾아넣을 수 있ㅇ믐 함수명이 흰색이 회색인건 언급이 안 됐다 사용 안됐다는 거고, 쓰이면 되는 거니 상관 없고 (코드 완성 후에도 안 되면, console.log 찍으면 되고 ) 파..

Postman 모음집 (프론트에 보내는 mock data, api 참고)

실제 하는 과정 Project 3 - [주문 api] postman 통신 시도 ** 주문정보 저장 api 후 통신 시도 1. 서버 연결 2. POSTMAN - 주소 확인 : 8000 - endpoint 확인 : router >controller >service > dao 따라가면서 정보를 얻어온다 /orders /orders/ createorders 완성된 엔드포인트로 주소 post pm-developer-justdoit.tistory.com key 에 해당되는 것은 카멜로 할지 스네이크로 할지 정하면 됨 . value 값은 id에 해당될 때는 " " 없이 숫자만. POST { "total price": "2000원", "shippingMethod" : "택배배송", "paymentId" : 1 } 문자..

sql Join만 따로

아래 내용 과제 [SQL복습 ] 과제 foundation 때 대충 했던 [MySQL로 Database 만들기] 1. DDL, DML 사용 (ERD 연결) 이후 프로젝크 3차 하면서 sql 공부하면서 채우게 된 [SQL복습 ] 과제 https://pm-developer-justdoit.tistory.com/70 Foundation 2 과제 - sns posti pm-developer-justdoit.tistory.com join 개념 참고 SQL 복습 - DATA 검색, 조회, 정렬, 필터링, 페이지네이션 ; SELECT, INNER/LEFT JOIN, GROUP BY *select: 데이터 조회 (전체 목록 페이지 : [전체 데이터 조회] select * from posts [특정 열 조회] select..