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

home2 게시판 Node.js, Express 게시판 socket.io 오류 ReferenceError: socket is not defined

socket.io 오류 ReferenceError: socket is not defined

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

    신현준
    참가자


     

     socket.on('인삿말',function(data){
            console.log('인삿말이 수신되었어요');
        });  

    이부분만 쓰면 사진과 같이 에러가나옵니다.

    저걸 지우면 안나오구요... 어떻게 해야할까요?

    const app = express();  는 맨위에있습니다.

    "socket.io": "^4.2.0" 버전입니다.

     

    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.2.0/socket.io.min.js" integrity="sha512-2hIBfT6wur46uR5ayhmyICuA8s15BvJhagB+jZImgktQAy832P7EuY8njl1HGp4YS0Sk8DXRo9dByhvD3jfDxA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> 

    잘 복사해서 body태그 안에 썼습니다.

     

    #17878

    codingapple
    키 마스터

    const 세개를 더 윗부분으로 옮겨봅시다 

    io.on('connection', function() 안에 socket이라는 파라미터가 필요합니다 

    #17883

    신현준
    참가자

    const express = require('express'); //express 불러옴
    const app = express();
    app.use(express.urlencoded({ extended: true }));
    const http = require('http').createServer(app);
    const { Server } = require("socket.io");
    const io = new Server(http);
    const MongoClient = require('mongodb').MongoClient;
    const methodOverride = require('method-override');
    app.use(methodOverride('_method'));
    app.set('view engine', 'ejs');
    require('dotenv').config()

    MongoClient.connect(process.env.DB_URL, (에러, client) => {
        //연결되면 할일.
        if (에러) { return console.log(에러); }
        db = client.db('nodetutorial');
        http.listen(process.env.PORT, function () { //soket.io 사용하기위해 app.listen -> http.listen으로 변경
            console.log('db연결 성공');
        });
    })

    io.on('connection',function(){
        console.log('연결되었어요');    
        socket.on('인삿말', function(data){
            console.log(data)
          });
    });
    app.get('/chat', function (요청, 응답) {
        응답.render('chat.ejs');
    });

    말씀하신대로 더 윗부분으로 올렸으나 똑같이

    ReferenceError: socket is not defined 라고 나오네요 ㅜㅜ

    #17884

    신현준
    참가자

    o.on('connection',(socket)=>{
        console.log('연결되었어요');    
        socket.on('인삿말', function(data){
            console.log(data)
          });
    });

    바꾸고 해결했습니다 감사합니다.

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 호 / 개인정보관리자 : 박종흠