TIL 23_06_15 (목)

jegw·2023년 6월 16일
0

TIL

목록 보기
23/77
post-custom-banner

오늘 한 일

블로그 백엔드 서버 만들기

  • 게시글, 댓글 CRUD

  • 게시글 작성-> 조회 -> 삭제 -> 수정 순서로 진행

서버 자동 재시작

코드를 변경하면 서버를 껐다 다시 켜야하는 수고를 줄이기 위해 nodemon을 설치했다. nodemon은 코드 변경을 감지하여 서버를 자동으로 재시작 해주는 패키지이다.

npm install -g nodemon

-g : 글로벌

설치 후 package.json 파일 안의 script에

"start" : "nodemon --watch src/ src/app.js"

이렇게 저장해두면 npm start 명령만으로 서버를 실행시키고 --watch라는 명령이 src폴더 아래의 변경을 감지하여 src/app.js 를 재실행시킨다.


❌몽고DB 실행오류 에러

어제는 잘 되던 몽고DB가 실행이 안돼서 구글링을 하면서 여러 시도를 해봤는데 해결이 안됐다. 제출까지 시간이 촉박해서 재설치를 했더니 실행이 됐다.

❌postId 키 중복 에러

MongoServerError: E11000 duplicate key error collection:
~~ index: postId_1 dup key: { postId: null }

  • 게시물을 DB에 넣다가 이런 에러가 떴다.
  • 이미 postId 값이 null인 document가 존재한다고 한다.
  • 비슷한 에러가 DB의 posts 컬렉션에 같은 user값으로 데이터를 넣으면 이런 에러가 뜬다. post 스키마에는 user에 unique값을 주지도 않았는데 왜 중복이 안되는건지 모르겠다.

해결 : 현재 컬렉션을 드랍하고 새로 게시물을 생성을 하면 같은 user로도 데이터가 들어간다.

의심 : 스키마에 unique값이 있었을때 만든 컬렉션이어서 그렇다.

시도1 : post스키마에 unique:true를 추가해도
unique값이 없을 때 생성한 현재 컬렉션에는 user가 중복으로 들어간다.

  • 컬렉션을 드랍하고 다시 만든다.서버는 다시 켜지 않았다. 다시 게시물을 생성해본다.
    -->중복으로 들어간다.

  • 서버를 껐다 킨다. 아직 중복으로 들어간다. 요청은 잘 되는데 에러메시지는 안 나오지만 DB에 추가가 안 된다.
    컬렉션을 드랍하고 다시 생성해본다. 여전히 잘 들어간다.

  • 컬렉션을 드랍하고 껐다 다시 킨다.
    여전히 잘 된다.

❔스키마에 unique:true인데 왜 에러가 안 날까?


post-custom-banner

0개의 댓글