이렇게 쓰면 'order' 기준으로 -1 (DESC) 정렬을 해달라는 얘기가 된다.
우리는 비동기(비순차)를 동기(순차)처럼 쓰고 싶기 때문에 Promise니 async니 하는 것들을 붙여서 쓴다.
exec()가 반환타입이 Promise 타입이기 때문에, 얘를 붙이지 않으면 앞에 await을 붙이고 말고는 상관없이 동기적으로 동작하지 않게 된다.
const order = todoMaxOrder ? todoMaxOrder + 1 : 1;
이렇게 썼더니 Error: Failure when receiving data from the peer
라는 에러가 났다.
내 기분: ???
코드를 한줄씩 비교해 봤더니. todoMaxOrder.order 였는데 todoMaxOrder 까지만 써놔서 그랬었다.
고쳐줬더니 잘 작동했다.
이건가? (아니었다)
의외로 이거면 되었다.
내가 참고한 건 이것인데, 그러면 뭐가 다른걸까?
-> 이건 컬렉션 목록에서 'order' 기준으로 하나를 찾고, targetTodo가 존재하면 targetTodo의 order를 currentTodo의 order로 바꿔주고 저장하겠단 얘기다.
currentTodo의 order에는 그냥 order을 넣어 바꿔주겠다는 것. (서로 바꿔치기인 셈)
즉, 이걸 value에다 쓰면 두 게시글의 작성 내용을 바꿔치기 하겠다는 것이다.
ValidationError일 경우 예외처리를 하는 것은 알겠는데, 저 빨간 메시지는 왜 뜨는걸까? 영상 속 튜터님 터미널은 깨끗한데 나는 자꾸 빨간 메시지가 떠 창민 튜터님께 문의.
여기가 문제였다! 창민 튜터님이 매의 눈으로 발견해주셔서 수정하니 영상 속 튜터님과 똑같이 깨끗하게 나왔다.