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

home2 게시판 Node.js, Express 게시판 채팅방 작성자명 질문있습니다.

채팅방 작성자명 질문있습니다.

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

    우효창
    참가자

    app.get('/chat/:id', function(req, res){
    db.collection('post').findOne({ _id : parseInt(req.params.id)}, function(에러, 결과){
    if (결과 == null){return res.status(404).send('요청 페이지 없음'); }
    console.log(결과)

    res.render('chat.ejs', { posts : 결과 } );

    let 채팅방주인 = "???"
    let 채팅정보 = { member : [ 채팅방주인 , req.user.id],
    date : new Date(),
    title : 채팅방주인 + "님의 채팅방"};
    db.collection('chat').insertOne(채팅정보, function(에러, 결과){
    console.log(결과)
    })
    });
    });

     

    채팅정보라는 변수를 보시면

    채팅을 누른 유저의 닉네임( ex: 박아무개, 고유_id xx) 은 잘 뜨는데, //req.user.id

    채팅방주인이라는 변수를 어떻게 조작해야 할지 모르겠습니다..

    누르는 게시글마다 작성한 사람이 다를테니 채팅방주인은 어느 글을 눌렀냐에 따라 달라져야하는데

    게시물마다 위 처럼 42번째 게시글을 누르면 db에 저장된 해당되는 오브젝트안에

    '작성자' : '김아무개' 라고 저장은 돼있지만, _id:42 안의 데이터들이 전부 문자열들이라 어떻게 지정을 해야될지 모르겠네요..

     

    더 필요하신 코드 있으면 올려드리겠습니다!

    #31727

    codingapple
    키 마스터

    글작성자의 정보를 서버로 보내면 그것이 채팅방주인이 아닐까요 

    글작성자의 아이디나 _id를 글과함께 미리 저장해놓거나 해야합니다 

    #31744

    우효창
    참가자

    감사합니다. 해결했습니다. 하나만 더 질문하겠습니다.!

     

    app.get('/chat', 로그인했니, function(req, res){

        db.collection('chat').find({ member : req.user.id }).toArray().then((결과)=>{
            res.render('chat.ejs', { data : 결과})
        });
        db.collection('chatting').find( { 작성자 : req.user.id} ).toArray().then((결과)=>{
            res.render('chat.ejs', {chatchat : 결과});
        })

    });

     

    이렇게 두 컬렉션을 뒤져서 한 ejs파일에 중복적으로 변수에 값을 담아 보내면 에러가 나나요?

    data라는 변수는 채팅방 목록을 반복문으로 출력해주기 위한 데이터를 가진 변수고

    chatchat은 전송한 채팅을 반복문으로 리스트들을 생성해주기 위한 데이터를 가지고 있습니다.

     

    실제 동작을 해보면 ejs에서는 data는 인식을 하지만 chatchat은 undefined 에러가 납니다

    #31757

    codingapple
    키 마스터

    db.collection('chat').find({ member : req.user.id }).toArray().then((결과1)=>{

      db.collection('chatting').find( { 작성자 : req.user.id} ).toArray().then((결과2)=>{
            res.render('chat.ejs', {chatchat : 결과1, data : 결과2});
       })
     });

    이래야합니다 
       

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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