해결된 질문
작성
·
345
0
관련해서 검색해보며 찾아봤는데 도저히 짐작가는 곳이 없어서 여쭤보게되었습니다.
강사님의 github코드 보면서 오타 확인도 했는데 제가 임의로 timeStamp라고 쓴 변수를 제외하고는 똑같은 걸 확인했습니다ㅠㅠ
캡쳐를 보면 resolver/message에서 30:19번째가 문제라고 나오는데 여기가 unshift를 사용한 곳입니다. 혹시나 해서 push 를 사용해봤는데 역시 같은 문제가 있었습니다.
그래서 messages에 옵셔널 체이닝으로 messages?.unshift를 사용했을 때 createMessage는 실행이 되지만 db에 변경되지는 않는 것을 확인했습니다.
추가적으로 어떤 부분을 확인하면 좋을까요?
답변 1
1
(제가 당분간 컴퓨터를 접할 수 없는 사정이 있어 정확한 답변을 드리기 어려운 점 양해 부탁드려요)
에러메시지는 "cannot find property 'unshift' of undefined" 라고 나오네요ㅡ 이 문장을 해석해보면, 객체(배열)이라고 예상하고 접근한 db.messages가 실제로는 undefined여서 unshift 프로퍼티에 접근하지 못한다는 뜻입니다. 그말인즉 db.messages가 정의되어 있지 않다는 말이고요.
이 정보로부터 문제를 찾아보셔야 해요. 일단 unshift 명령을 내리는 근처(바로 위)에서 db.messages를 출력해보고, undefined라면 왜 undefined가 나오는지, db도 출력해보고, 혹시 오타는 없는지 등등을 이 기준으로 찾아나가다 보면 문제를 해결하실 수 있으리라 생각합니다.
헐... 강사님 정말 감사합니다. db가 undefined 여서 확인했더니 db가 descructuring이 안 되어 있던 문제였습니다. 그냥 context가 있어서 안 되는거였어요.....
하나씩 짚어보면서 찾아본다고 생각했지만 다시 한 번 주의가 필요하다고 느꼈습니다. 오타 확인 또 확인하고 한 줄씩 생각하고 보는 주의력을 더 길러야겠네요. 감사합니다.
헉 휴일임에도 이렇게나 빨리 답변주셔서 감사합니다. 말씀해주신 부분들로 어떤부분을 찾아봐야하는지 좀 더 감이 잡히네요. 꼭 찾아내겠습니다.
감사합니다!!