• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

21.02.07 17:52 작성 조회수 3.77k

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

Han N님의 프로필

Han N

2021.02.07

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