6 글 보임 - 1 에서 6 까지 (총 6 중에서)
-
글쓴이글
-
2023년 3월 22일 00:57 #73142
김민주참가자안녕하세요 socket.io에서 db 저장을 하려고 하는데 오류가 떠서 문의 드립니다. 메시지를 보내면 collection"chatroom"에서 원래 있던 _id에 chat이라는 배열을 추가하고 싶습니다. server.js
app.post("/chat", 로그인했니, (req, res) => { console.log('req.body.chatroomname=> ' +req.body.chatroomname); // 게시물 작성자 console.log('req.user.id=> '+req.user.id); // 사용자 var save = { title: req.body.chatroomname, member: [ObjectId(req.body.chatroomid), req.user._id], date: new Date(),
}; db.collection("chatroom").find({ member: req.user._id }).toArray().then((result) => { if(req.body.chatroomid){ db.collection("chatroom").findOne({member : [req.user._id,req.body.chatroomid]},(error,result2)=>{ if(!result2){ / db.collection("chatroom") .insertOne(save) .then((result3) => { res.render("chat.ejs",{chatlist:result,chatting:result3,name:req.user}); }); } else{ res.render("chat.ejs",{chatlist:result,chatting:result2,name:req.user}); } }) } else{ res.render("chat.ejs",{chatlist:result,chatting:null,name:req.user}); } }); }); // 전체 채팅방 io.on("connection", function (socket) { let Username; let roomName; socket.on("room1-send", function (data) { io.emit("broadcast", data); console.log("roomName=> "+roomName); console.log("보낸사람=>" + Username); console.log("메시지=>" + data); db.collection("chatroom").find({_id:roomName}).toArray((error,result)=>{ console.log(result);
db.collection("chatroom").updateOne({_id:roomName},{ $push: { chat: { UserId:Username , contents: data, date:new Date() } } }, (result2) => { console.log(result2); }) }) }); socket.on("room1", function (name) { Username = name; console.log("이름" + name); io.to("room1").emit("broadcast", "<p>"+name+"님이 입장하셨습니다. </p>"); }); socket.on("joinroom", function (data) { roomName = data; console.log('방이름'+data); socket.join("room1"); }); }) 이렇게 서버는 작성하였습니다. 그치만 콘솔로 찍어보면 방이름641995913c45cc37bddd4a6a 이름test1 roomName=> 641995913c45cc37bddd4a6a 보낸사람=>test1 메시지=>1q [] undefined 이렇게 나옵니다. 왜 오류가 뜰까요?
2023년 3월 27일 00:51 #73679
김민주참가자findOne을 해도 언디파인드가 나옵니다ㅠㅠ 찾는 부분에서 오류가 뜨는 것 같은데 roomName은 아이디가 잘 나옵니다..왜 chatroom 컬렉션에서 object id를 찾지 못하는 걸까요?
2023년 3월 27일 19:22 #73783
codingapple키 마스터ObjectId()로 저장된거 찾을 땐 { _id : new ObjectId(document아이디)} 넣읍시다 상단에서 ObjectId함수 require해와야할걸요
-
글쓴이글
6 글 보임 - 1 에서 6 까지 (총 6 중에서)
- 답변은 로그인 후 가능합니다.