2017-03-17 90 views
2

我有一個文件夾結構,如:的NodeJS,socket.io和expressjs不連接

socket 
    - project 
    - main.js 

    -node_modules 
    - node_modules_folder_here 

    - text.html 

我main.js文件看起來像:

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    console.log("inside") 
    res.send('<h1>Hello again</h1>'); 
}); 

io.on('connection', function(socket){ 
    console.log("socket") 
    console.log('a user connected'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

我正在使用node main.js和一切服務器正常工作 我的test.html的樣子:

<body> 
<h3>Hellooww world</h3> 
<script src="/socket.io/socket.io.js"></script> 
<script type="text/javascript"> 
    var socket = io(); 
    console.log("check io", socket) 
</script> 
</body> 
</html> 

我的package.json,如:

"author": "", 
    "license": "ISC", 
    "dependencies": { 
    "babel-core": "^6.24.0", 
    "babel-loader": "^6.4.0", 
    "express": "^4.15.2", 
    "node-fetch": "^1.6.3", 
    "promise": "^7.1.1", 
    "socket.io": "^1.7.3", 
    "webpack": "^2.2.1", 
    "xmlhttprequest": "^1.8.0" 

我只是跟着socket.io教程,並得到這個錯誤

GET file:///socket.io/socket.io.js net::ERR_FILE_NOT_FOUND 
test.html:10 Uncaught ReferenceError: io is not defined 

而且,如果我使用這個套接字服務器的另一個項目如何叫什麼?

這裏有什麼問題?我只是遵循socket.io教程,我在這裏做什麼?什麼是錯,爲什麼?

+0

使用npm安裝socket.io – Eldho

+0

我已經安裝了它....我正在運行服務器,當我在html上調用它時它很好,它只給出錯誤 – aryan

+0

是否已將它添加到您的package.json ? – Ruben

回答

0

您的瀏覽器正在查找file:///socket.io/socket.io.js,它認爲file://協議使我認爲您直接打開您的html文件。 您在src字符串之後還缺少一個報價。

確保您正在加載localhost:3000

+0

沒有報價是類型...我用python啓動了一個dev服務器並打開了我的test.html ...現在它只給io沒有定義錯誤..什麼是isseu? – aryan

+0

@aryan檢查您的Web檢查器,看看請求socket.io.js的HTTP調用是否正確返回200.如果不是,那麼瀏覽器無法在執行代碼之前設置socket.io。 – Plato