• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 안녕하세요 node.js Object 객체 관련 질문입니다

안녕하세요 node.js Object 객체 관련 질문입니다

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #111522

    김도균
    참가자
    안녕하세요 선생님 다름이 아니라 제가 숙제로 채팅방 모여있는 곳을 따로 구현 하라고 하셔서 하는 중인데 저는 MyPage에 하려고
    
    
    app.get('/mypage', isLogin ,async (req, res)=>{
        var data = await db.collection('member').findOne({_id : req.user._id})
        var chatData = await db.collection("chat").find({$or : [
                { chatMember : {to : req.user._id}},
                { chatMember : {from : req.user._id}}]
        }).toArray()
        console.log(await db.collection("chat").findOne({chatMember : {to : req.user._id}}))
        console.log(chatData)
        var reqUser = req.user
        if(reqUser == null){
            var tempRepUser = 0
            res.render('mypage.ejs', {data: data, member : tempRepUser})
        }else{
            res.render('mypage.ejs', {data: data, member : reqUser})
        }
    })
    
    mypage에 이런식으로 코드를 짰습니다
    
    그리고 chat 관련 코드는 아래와 같이 짰구요
    
    
    app.get("/chat/:id", isLogin, async (req, res)=>{
        var reqParamsID = await db.collection("post").findOne({_id : new ObjectId(req.params.id)})
        var chatContent = await db.collection("chat").find({  $or: [
                { chatMember: { to: new ObjectId(reqParamsID.user), from: new ObjectId(req.user._id) } },
                { chatMember: { to: new ObjectId(req.user._id), from: new ObjectId(reqParamsID.user) } }
            ]}).toArray()
        var reqUser = req.user
        if(reqUser == null){
            let tempUserData = 0
            res.render('chat.ejs', {data : reqParamsID, chatData : chatContent, reqUser : reqUser, member : tempUserData})
        }else{
            res.render('chat.ejs', {data : reqParamsID, chatData : chatContent, reqUser : reqUser, member : reqUser})
        }
    })
    app.post('/chat', isLogin, async (req, res)=>{
        var chatRoomName = req.body.parentUser + " 와 " + req.user.nickName + " 의 채팅방"
        try {
            var insertDb = db.collection("chat").insertOne({
                parentUserName: req.body.parentUser,
                chatMember: {to : new ObjectId(req.body.parentUserObjectId), from : new ObjectId(req.user._id)},
                chatUserName: req.user.nickName,
                chatTime : "1 분전",
                content : req.body.chatContent,
                roomName : chatRoomName
            })
            res.status(200).send("전송 완료")
        }catch (err){
            res.status(500).send("Internal Server Error")
        }
    })
    
    그런데 문제는 채팅 자체를 해봤을 때는 데이터를 주고 받는 부분과 클라이언트 부분도 문제가 없었지만 myPage로 일부 데이터를 보내는 과정에서 
    var chatContent = await db.collection("chat").find({  $or: [
            { chatMember: { to: new ObjectId(reqParamsID.user), from: new ObjectId(req.user._id) } },
            { chatMember: { to: new ObjectId(req.user._id), from: new ObjectId(reqParamsID.user) } }
        ]}).toArray()
    해당 쿼리가 반환 값을 자꾸 []를 반환해서 고민 중입니다
    
    참고로 몽고DB 안에 데이터는
    
    chatMember: Object
    { to: ObjectId('65aeb5b0b31b12e463753d20')
    from: ObjectId('65a04bfc3eebcee7feeba785')}
    
    
    이런식으로 Object 객체 2개가 있고 현재 제가 ObjectId('65a04bfc3eebcee7feeba785') 요걸로 로그인 한 상황이라 위의 쿼리로는 나와야 한다고 생각해서요
    
    
    해당 부분 문의드립니다 감사합니다
    
    
    
    
    #111535

    codingapple
    키 마스터
    reqParamsID.user req.user._id 이런거에 이상한 공백 없는지 확인해봐야할듯요 
    
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠