답변 2
1
0
* 먼저, 카운터 콜렉션을 아직 제가 확인하지 못했고, "api/post/submit"의 요청 결과(err가 발생한다면, err의 내용 등)를 확인하지 않아서 정확하지 않을 수 있지만 가장 확률높은 문제를 기준으로 답변드리겠습니다. 혹시 해결되지 않는다면 제가 나열한 정보와 함께 다시 질문주세요 :)
post doc에 정상적으로 postNum의 키-값이 들어가는 것을 봐서, counter의 findOne 메서드는 정상적으로 동작하되, 그 이후의 updateOne 메서드에서 동작하지 않는 것 같습니다.
사실 VSCode의 코드 포맷터에서 이미 그 이유를 명시해주고 있는 것 같습니다만, JS는 언어적 특성 상 변수를 사용할 때 가장 가까운 변수를 찾아서 사용하는 경향이 있습니다.
지금 counter 콜렉션에 대한 findOne의 결과로 다시 counter의 이름을 사용하기에, counter의 두번째 메서드(updateOne)의 주체가 counter콜렉션이 아니라 findOne의 결과 doc로 실행되는 것 같습니다.
findOne의 결과의 이름을 counterDoc, 혹은 doc등의 이름으로 바꾸어서, "counter"란 이름이 중복되어 사용되는 것을 피해보시겠어요? 혹은 제 코드처럼 애초에 counter 모델의 선언을 대문자로 해주셔도 됩니다! ( 제 강의 코드는 모델을 항상 대문자로 선언하여 변수의 중복을 피하고 있습니다)
Happy Coding :)