[23.11.12] TIL

yy·2023년 11월 12일

개발일지

목록 보기
31/122

오늘 할 일

  1. (완료) 강의 듣기 (아키텍쳐 레이어)
  2. (완료) lv5 만들기 시작

❓오늘의 궁금증

1. throw new Error 와 return 에러 처리의 차이

공부하다보면 언제는 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

2. 패키지 설치할 때 -D를 붙이는 이유는 뭘까?

패키지를 설치하려고 입력하는 코드에 의문이 들 때가 있다. 이거 없이도 잘 설치되는데 왜 붙이는거지? 그 중 하나인 -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인 값인 데이터에서 quantityprice와 곱을 totalPrice에 담는 쿼리였다.


곱했더니 숫자에 n이 들어가버리는 매직!🪄🎩

해결은 SUM(price*${quantity}) 이렇게 바꿨더니 해결됐다.
Orders 테이블에도 값이 잘 들어가는걸 확인할 수 있었다.

profile
시간이 걸릴 뿐 내가 못할 건 없다.

0개의 댓글