장바구니 추가를 반복적으로 하다 보면 가끔 500에러가 발생합니다.
494
작성한 질문수 3
1. key값을 cartItem.id로 설정했더니, 동일한 아이템을 장바구니에 담기를 했을 경우 아래와 같이 에러가 발생하고 있습니다.
vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys detected: '0'. This may cause an update error.
found in
---> <Pages/cart.vue> at pages/cart.vue
<Nuxt>
<Layouts/default.vue> at layouts/default.vue
<Root>
이거는 key값이 중복되었을 때 발생하는 오류인데 혹시나 동일한 이슈가 생겨서 찾는 분이 계실것 같아서 올렸습니다. key를 index로 잡으면 없어지긴 합니다.
2. 코드는 강사님이 작성한 것과 동일하게 넣고 테스트를 하는데, 잘 되다가도 간혹 에러페이지로 가는 경우가 발생해서 네트워크와 백엔드 쪽을 확인해보니 아래와 같이 id가 중복된다는 코멘트가 발생하고 있습니다.
구글링을 해봤지만 뭔가 잘 해결이 안되서 문의드립니다.
GET /products 200 3.164 ms - 4120
GET /products/0 304 2.824 ms - -
POST /carts 201 3.226 ms - 122
GET /products 304 2.879 ms - -
GET /products/0 304 2.879 ms - -
POST /carts 201 3.532 ms - 122
GET /products 304 2.907 ms - -
GET /products/2 304 2.832 ms - -
Error: Insert failed, duplicate id
at Function.insert (/Users/nuxt-store/backend/node_modules/lodash-id/src/index.js:49:18)
at /Users/nuxt-store/backend/node_modules/lodash/lodash.js:4430:28
at arrayReduce (/Users/nuxt-store/backend/node_modules/lodash/lodash.js:697:21)
at baseWrapperValue (/Users/nuxt-store/backend/node_modules/lodash/lodash.js:4429:14)
at LodashWrapper.wrapperValue (/Users/nuxt-store/backend/node_modules/lodash/lodash.js:9114:14)
at create (/Users/nuxt-store/backend/node_modules/json-server/lib/server/router/plural.js:239:48)
at Layer.handle [as handle_request] (/Users/nuxt-store/backend/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/nuxt-store/backend/node_modules/express/lib/router/route.js:137:13)
at next (/Users/nuxt-store/backend/node_modules/express/lib/router/route.js:131:14)
at Route.dispatch (/Users/nuxt-store/backend/node_modules/express/lib/router/route.js:112:3)
POST /carts 500 2.016 ms - -
답변 2
3
싹 이부분을 날려주시고
힌트는
아래와 같았습니다 이미 한참지난부분 이나, 혹시나 같은 이슈 분들은 db.json cart 배열 비워보세용
----
장바구니에 담기전 조회후 이미 id 가 존재하면
방어해주는 코딩을 추가해주는것도 연습삼아 괜찮을것같아요
3
1번은 v-for가 key값으로 고유한 string을 원하기 때문에 발생하는 일이구요. 보통은 작성자님처럼 index 쓰면 해당 오류가 발생하지 않더라구요.
2번은 장바구니에 같은 물건을 담았을 경우에 백엔드에서 오류를 뱉어내도록 설정한 것으로 보입니다. Post /carts로 요청했는데 201이오면 정상적으로 담겼고, 500인데 에러 메세지가 Inser failed, duplicate id면 이미 담겼구나라고 생각하시면 됩니다.
0
추가적으로 더 검증을 했더니, 대현님 말씀처럼 id 중복시 발생하는 오류는 맞는 것 같습니다.
다만 이게 근본적인 원인은 같은 상품을 담았을 때랑 상관없이 카트에 담기는 product 상품의 id값이 cart의 id값과 달라지면서 발생하는 이슈인 것 같습니다.

상품 카트 안에 담긴 데이터를 전부 비우고서 2, 1, 3 순서로 장바구니 담기를 하면 에러가 발생합니다.
(동영상 첨부가 안되서 임의로 화면 중간중간 캡쳐로 모아서 올렸습니다)

그래도 대현님 덕분에 어느 시점에 발생하는 오류인지를 못찾고 있어서 답답했는데 그 부분에 대한 고민은 해소됬네요. 감사합니다.
1
@대현, 오 대현님 제가 요즘 통 질문 게시판을 확인 못했는데 먼저 확인하고 친절한 답변해 주셔서 감사합니다 :)
@MostOneBrush 좋은 질문 주셨는데 제가 답변이 늦어져서 죄송해요..! :) 대현님이 말씀해 주신 것처럼 1번은 key 값이 유니크하지 않아서 발생하는 에러입니다. 2번은 현재 강의에서 사용하고 있는 API가 말씀하신 케이스를 처리하지 못해서 일어나는 문제인 것 같아요. 실제 API가 아니라 Mock API이다보니 생기는 문제라고 보시면 될 것 같아요 :)
판교님, 50% 학생 할인 쿠폰
0
132
2
캡틴님 커리어 질문 있습니다
0
76
1
nuxt 최신버전 설치 후 layouts 없어서 직접 폴더 생성 후 문제
1
347
1
vue나 nuxt 새로운 강의는 출시 예정이 없으실까요?
0
185
1
24년 강의를 들으면서 에러나는 부분 정리
2
337
2
공식홈페이지에 설치방법이 바뀐거같아요
1
401
3
layouts폴더와 default.vue에대해서 궁금한 점 있습니다!
1
383
2
자료가 없습니다.
1
285
2
에러 페이지 정의 방법 강의 문의
1
333
2
SSG -> SSR 배포 방식 전환
1
523
2
갑자기 화면에 에러가 나오네요..
1
448
2
마지막 강의까지 작성된 코드
1
293
2
JSON Server Operator 링크에 Operator 가 없습니다.
1
223
2
Vue2 EOL 관련해서..
1
463
2
env.baseUrl 문제
1
624
2
블로그 기능 질문입니다!
1
454
3
node 버전 문제 질문입니다.
1
223
1
폴더구조 다른것 안내 부탁드려요
1
457
1
npm run generate 배포
1
675
2
캡틴판교 선생님 너무 궁금해서 질문드립니다 ㅜ
1
323
2
nuxt.config.js 에서 baseurl 지정하는 방법
2
991
1
db.json 안에 이미지 아래 본문 처럼 바꾸면 랜덤으로 나옵니다.
2
608
3
axios 설치 후 새로고침 시 에러 발생할 때 해결 방법 입니다.
2
767
2
SSG 배포가 현재 상품,장바구니에는 맞지 않는 배포방식인거죠?
1
385
2





