-
로그인 문제 해결 후 또 새로운 문제!!!!!Project/실시간 채팅 앱 2022. 10. 13. 18:28반응형
로그인 문제는 해결했다.
접속하면 auth/me/ 도메인으로 토큰을 확인하고 토큰이 유효하다면
username을 return해주는 요청을 하나 더 만들었다. 이제 GUEST유저로 채팅도 되고, 로그인한 사용자는
고유 닉네임을 쓸 수도 있다. 이제 DB를 사용해서 로컬에 있는 data를 옮기는 작업을 했다.
DB는 mongoDB를 사용했는데 테이블형식이라 고유한 데이터가 중요한 점이 잘어울린다고 생각했다.
그리고 sql 관계식을 공부해야한다는 부담감도 있어서 상대적으로 접근하기 쉬운 mongoDB를 선택했다.
Auth연결 작업은 아주 수월했다. collection하나 등록해서 return만 해주면 됐다.
문제는 채팅list에서 발생했다...
내가 가진 Data는 큰 lists안에 채팅방 list들이 있고 그 안에 msg를 가진 형태이다.
POST를 하는 부분은 msg하나만 딸랑 보내주는 POST였기때문에...Client쪽도 손봐줬다.
client에서 가지고있는 msg에 보내고자 하는 msg를 추가한 새로운 배열을 POST body에 넣어줬고,
활성화되어있는 listname까지 전달해주었다. 여기서 전달받은 listname이 큰 배열에서 옳은 경로를 찾는 key가 될 것이다.
로컬에 있던 데이터 전부를 일단 업데이트 해주긴 했는데..
lists : [object],[object],[object] 이런 형식으로 Data가 리턴됐다.
그럼 mongoDB의 find함수로 query에 listname과 전달받은 listname을 전달했는데.... 빈배열이 자꾸 나왔다.
db.survey.find( { results: { $elemMatch: { product: "xyz", score: { $gte: 8 } } } } ) 집에서 마무리 못하고 정보를 더 찾아본 와중에 내가 시도한 것과 공식문서에 차이점이 있었다.
나는 key도 ""로 감싸줬는데 공식문서에서는 그렇게 하고 있지 않다. 그리고 추가적으로 elemMatch를 쓰지 않으면
db.survey.find( { "results.product": "xyz" } ) 이런 식으로 하면 된다고 나와있다...
이제 집에가서 해 볼 두 가지 방법이 생겼다.
1. ""제거하고 key와 value형태로 find해보기.
2. "."로 접근해서 lists.listName으로 접근해보기
이 두개만 해결하면 update로 보내고자 하는 메세지가 포함된 메세지 전체를 업데이트 해주려고 한다....
내일 또열심히 해봐야겠다
반응형'Project > 실시간 채팅 앱' 카테고리의 다른 글
Snichat 개발부터 배포까지,, (0) 2022.10.18 MongoDB 데이터 수정 및 삭제 완료,, (0) 2022.10.15 로그인 상태 유지하기 (0) 2022.10.12 소켓에 대하여.. (0) 2022.10.09 반응형 디자인 및 불러오기 수정 (0) 2022.10.08