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

home2 게시판 Node.js, Express 게시판 socket.io 오류좀 도와주세요

socket.io 오류좀 도와주세요

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

    익명
    비활성

    설명대로 socket.io도 잘 설치해서 웹소켓 첫강의 잘 듣고 있었는데

    7분쯤부터 

    const io = require('socket.io').listen(http);
    ^

    TypeError: require(...).listen is not a function
    at Object.<anonymous> (C:\Users\chris\OneDrive\문서\NodeJS\server.js:12:33)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
    [nodemon] app crashed - waiting for file changes before starting...
    [nodemon] restarting due to changes...
    이런식으로 TypeError가 뜨더라고요

    그래서 오타가 있을까봐 강의 아래 설명란에 있는 코드들 복사해서 수정했는데도 오류가 나서

    구글에 저내용 검색해보니

    const io = require('socket.io').listen(http); 이내용을

    const io = require('socket.io')(http); 이런식으로 바꾸라고 해서 수정했더니

    오류는 나지 않았지만, 웹사이트 실행시 터미널에 출력되어야하는 "연결되었어요" 가 전혀 출력되지 않아서

    이렇게 문의드리는데,

    혹시 해결법이 있나요? 없다면 server.js파일과 chat.ejs파일좀 보내주실수 있으신가요 부탁드립니다 ㅠㅠ

    #5955

    codingapple
    키 마스터

    (server.js)

    const express = require('express');
    const app = express();

    const http = require('http').createServer(app);
    const io = require('socket.io').listen(http);

    const bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({ extended: true }));
    const MongoClient = require('mongodb').MongoClient;
    app.set('view engine', 'ejs');
    app.use('/public', express.static('public'));

    var db;
    MongoClient.connect('dbURL', { useUnifiedTopology: true }, function (에러, client) {

      if (에러) return console.log(에러)
      db = client.db('todoapp');

      http.listen(8080, function () {
        console.log('listening on 8080')
      });

    });

     

    io.on('connection', function(socket){
      console.log('연결되었어요');

      socket.on('인삿말', function(data){
        console.log(data);
        io.emit('퍼트리기' , data);
      });

    }); 

    #5957

    codingapple
    키 마스터

    (chat.ejs)

     

    <script src="어디서찾아온socket.io.js 파일"></script>

    <script> var socket = io(); </script>

    이것만 하면 잘 나올걸요 

    근데 script태그안에 cdn으로 저거 복붙하실 때 현재 package.json에 있는 socket.io 버전이랑 맞는지 한번 체크해보는게 좋을듯 합니다. 

     

    아니면 강의에선 socket.io 2.3버전을 썼기 때문에 npm install socket.io를 할 때 2.3버전으로 설치해도 괜찮을듯요 

     

     

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

About

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

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

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