오늘 할 일
- (완료) 강의 듣기 (아키텍쳐 레이어)
- (완료) lv5 만들기 시작
공부하다보면 언제는 return으로 에러를 보낼때도 있고, return으로 응답으로 보낼 때도 있고, throw new Error로 에러를 보낼 때도 있다. 대체 언제 뭘 써야하는걸까?
아래 링크 블로거님이 잘 설명 해주셨다.
https://velog.io/@polaris6204/return-new-Error-vs-throw-new-Error
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/throw
https://medium.com/@junchenp1018/differences-in-javascript-with-throwing-and-return-error-d8c0e901c083
패키지를 설치하려고 입력하는 코드에 의문이 들 때가 있다. 이거 없이도 잘 설치되는데 왜 붙이는거지? 그 중 하나인 -D.
그냥 yarn add nodemon도 설치가능한데 왜 굳이 -D를 붙이는 이유가 뭘까?
-D(DevDependency)로 설치하는 이유는 개발과정에서만 필요한 라이브러리이기때문! 배포할때는 사실 필요없기때문에 따로 -D를 붙여서 설치해준다.
//-D빼고 설치했을때 { "dependencies": { "@prisma/client": "^5.5.2", "cookie-parser": "^1.4.6", "express": "^4.18.2", "jsonwebtoken": "^9.0.2", "prisma": "^5.5.2", "nodemon": "^3.0.1" } // -D를 넣고 설치했을때 "dependencies": { "@prisma/client": "^5.5.2", "cookie-parser": "^1.4.6", "express": "^4.18.2", "jsonwebtoken": "^9.0.2", "prisma": "^5.5.2" }, "devDependencies": { "nodemon": "^3.0.1" }
PrismaClientValidationError:
Argument 'totalPrice': Invalid value provided. Expected Int, provided BigInt.
express prisma 환경에서 queryraw 사용하다가 오류가 나버렸다. prisma에서 queryraw를 처음 사용한 날이여서 난생 처음보는 에러였다.
const totalPrice = await prisma.$queryRaw`SELECT (price*${quantity}) AS totalPrice FROM Menus WHERE menuId = ${menuId}`; //메뉴별로 조회가 가능하도록 쿼리를 짜야한다.위와 같은 쿼리로 입력받은
menuId인 값인 데이터에서quantity와price와 곱을 totalPrice에 담는 쿼리였다.

곱했더니 숫자에 n이 들어가버리는 매직!🪄🎩
해결은 SUM(price*${quantity}) 이렇게 바꿨더니 해결됐다.
Orders 테이블에도 값이 잘 들어가는걸 확인할 수 있었다.