2013-06-23 146 views
2

我知道這是一個在這裏討論了很多錯誤。但在通過谷歌發現一些帖子後,它仍然沒有解決我的問題。未捕獲ReferenceError:io未定義

當我嘗試在我的index.html中包含io javascript時,出現上述錯誤。

我已經試過: <script src="http://localhost:8080/socket.io/socket.io.js"></script><script src="/socket.io/socket.io.js"></script>

,甚至試圖切換端口3000的問題仍然存在不過。

我試着重新啓動我的app.js與npm install socket.io重新安裝socket.io(雖然它是在我的包)。我看到在我的node_modules文件夾中創建了一個socket.io文件夾。

我開始我的服務器如下:

var express = require('express'); 

var app = express(), 
    server = require('http').createServer(app), 
    io = require('socket.io').listen(server); 

app.listen(8080); 

而且我的指數也從裝載谷歌最新的jQuery:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

我的終端顯示,當我重新啓動我的app.js socket.io啓動:

23 Jun 13:31:56 - [nodemon] starting `node app.js` 
    info - socket.io started 

我總的index.html(我重新輸入/從教程改造它:http://psitsmike.com/2011/09/node-js-and-socket-io-chat-tutorial/

<script src="http://localhost:8080/socket.io/socket.io.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<script> 

    var socket = io.connect(); 

    socket.on('connect', function() { 
     socket.emit('adduser', prompt("Hoe heet je?")); 
    }); 

    socket.on('updateChat', function(username, data) { 
     $('#conversation').append('<strong>' + username + '</strong> says: ' + data + '<br>'); 
    }); 

    socket.on('updateUsers', function(data) { 
     $('#users').empty(); 
     $.each(data, function(k, v) { 
      $("#users").append('<div>' + k + '</div>'); 
     }); 
    }); 

    $(document).ready(function() { 
     $('#datasend').click(function() { 
      //get the message and empty the input 
      var msg = $('#data').val(); 
      $('#data').val(''); 

      //Let the server execute sendchat along with the msg 
      socket.emit("sendChat", msg); 
     }); 

     //ENTER key 
     $('#data').keypress(function(e) { 
      keyCode = (e.keyCode ? e.keyCode : e.which); 
      if (keycode == 13) { 
       $(this).blur(); 
       $('#datasend').focus().click(); 
      } 
     }); 
    }); 

</script> 
<div style="float:left;width:100px;border-right:1px solid black;height:300px;padding:10px;overflow:scroll-y;"> 
    <b>USERS</b> 
    <div id="users"></div> 
</div> 
<div style="float:left;width:300px;height:250px;overflow:scroll-y;padding:10px;"> 
    <div id="conversation"></div> 
    <input id="data" style="width:200px;" /> 
    <input type="button" id="datasend" value="send" /> 
</div> 
+0

哪裏錯誤?在客戶端還是在服務器端? (我在這裏假設你在這裏發佈的代碼是服務器端的,我非常希望這種情況) –

+0

它在我的Chrome控制檯中。所以這是客戶端。 – CaptainCarl

+0

小心發佈您正在使用的客戶端代碼?這個引用錯誤與服務器端無關。 –

回答

11

在你的代碼,更改此

app.listen(8080); 

這個

server.listen(8080); 
+0

downvote的任何理由? – user568109

+0

你是真棒男人....我可能知道背後的原因嗎? – Jana

相關問題