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

home2 게시판 Node.js, Express 게시판 내가 보낸 메시지 색칠하고,옮기기 질문있습니다.

내가 보낸 메시지 색칠하고,옮기기 질문있습니다.

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

    정중식
    참가자
    1. 지금 /chat 페이지의 모든 메세지들은 회색으로 보입니다.
    내가 보낸 메세지는 우측으로 옮기거나 색을 다르게 해주거나 그런건 어떻게 해야할까요?
    아마 html css 잘하면 될듯요 
    
    라고하셨는데 저는 
    
        eventSource = new EventSource('/message/' + nowChatRoomId);
        eventSource.addEventListener('test', function (e) {
          var data = JSON.parse(e.data);
          data.forEach((item) => {
            $('.chat-content').append(
              `<li><span class="chat-box <strong>mine</strong>">${item.content}</span></li>`
            );
          });
     
    이런식으로 강사님이 예전에 하셧던것처럼 mine 클라스명을 붙여서 
    .mine {
      background: yellow;
      color: #000;
      float: right;
    }
    
    이렇게 꾸며줬는데요,
    문제는 저 클래스명을 조건문을 걸고싶은데 어떻게 해줘야할지 갈피를 못잡겠습니다.
    req.user._id를 서버에서 전송받아서, 채팅보낸사람의 userId와 지금 로그인한 사람의 user._id를 비교해서 일치하면 mine클래스가 붙게끔하려구하거든요
    그럼 아래 코드짠곳에서 req.user._id를 클라이언트에 보내줘야하는건가요?
    근데 지금 채팅방을 클릭하면     eventSource = new EventSource('/message/' + nowChatRoomId);
     이 코드로인해서 아래 서버코드가 작동되는건데.. req.user._id를 또 보내주려면 어떤식으로해야하나요..?
    
    
    app.get('/message/:parentid', isLogin, function (req, res) {
      res.writeHead(200, {
        Connection: 'keep-alive',
        'Content-Type': 'text/event-stream',
        'Cache-Control': 'no-cache',
      });
      db.collection('message')
        .find({ parent: req.params.parentid })
        .toArray()
        .then((result) => {
          res.write('event: test\n');
          res.write(`data: ${JSON.stringify(result)}\n\n`);
        });
      const pipeline = [{ $match: { 'fullDocument.parent': req.params.parentid } }];
      const changeStream = db.collection('message').watch(pipeline);
      changeStream.on('change', (result) => {
        var addData = [result.fullDocument];
        res.write('event: test\n');
        res.write(`data: ${JSON.stringify(addData)}\n\n`);
      });
    });
    
    
    		
    	
    #67534

    codingapple
    키 마스터
    페이지 접속시 ejs파일로 서버에서 보내거나 로그인 후 로컬스토리지에 넣어두고 필요할 때 쓰거나 하면 됩니다
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 호 / 개인정보관리자 : 박종흠