인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

웹소켓 미들웨어 적용하기

Cannot read property 'split' of undefined 에러가 나옵니다...

작성

·

4K

0

코드 작성 후 정상적으로 실행이 되었는데 갑자기 재실행을 하면 

8005 번 포트에서 대기 중

몽고디비 연결 성공

chat 네임스페이스에 접속

C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\socket.js:29

      .split('/')[referer.split('/').length - 1]

       ^

TypeError: Cannot read property 'split' of undefined

    at Namespace.<anonymous> (C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\socket.js:29:8)

    at Namespace.emit (events.js:315:20)

    at Namespace.emit (C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\node_modules\socket.io\lib\namespace.js:213:10)       

    at C:\Users\juren\OneDrive\바탕 화면\Node\chapter12\gif-chat\node_modules\socket.io\lib\namespace.js:181:14

    at processTicksAndRejections (internal/process/task_queues.js:75:11)

[nodemon] app crashed - waiting for file changes before starting...

이런 에러가 나오면서 실행이 되지않습니다.. 그리고 저 에러가 나고 나서?? 

채팅방에 사용자가 0명일때 채팅방이 삭제되는 부분도 삭제는 정상적으로 되는데 새로고침을 해줘야만 삭제된상태로 나옵니다.. 왜 그런걸까요 제로초님..

답변 2

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

왜 서버가 재실행되나요? 에러 내용은 말 그대로 referer가 undefined인 것입니다. 

방 삭제 관련해서는 router.delete 코드를 아래처럼 수정해보세요.

req.app.get('io').of('/room').emit('removeRoom', req.params.id); // 이거 추가
setTimeout(() => {
  req.app.get('io').of('/room').emit('removeRoom', req.params.id);
}, 2000);

0

어쩔때는 제대로 돌아가고 어쩔때는 referer가 undefined로 나오고 이상하네요 ㅠㅠ 컴퓨터를 아예 다시 키니까 또 잘 돌아갑니다...

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기