2016-06-13 28 views
1

这是我在NodeJs和i'上的冷杉程序,试图在此上使用ExpressSocket.io。创建简单的项目后,如下面的代码,我得到Nodejs get throw er; //未处理'错误'事件

throw er; // Unhandled 'error' event 

错误,我是谷歌更多的教程,但我不能找到什么我的代码问题

安装软件包:

{ 
    "name": "signalAndroidServerApplication", 
    "version": "0.0.0", 
    "private": true, 
    "dependencies": { 
     "body-parser": "~1.12.4", 
     "cookie-parser": "~1.3.5", 
     "express": "~4.12.4", 
     "socket.io": "latest" 
    } 
} 

我的NodeJS:

var socket = require('socket.io'); 
var express = require('express'); 
var app = express(); 
var server = require('http').createServer(app); 
var io = socket.listen(server); 
var port = process.env.PORT || 3000; 

server.listen(port, function() { 
    console.log('Server listening at port %d', port); 
}); 

io.on('connection', function (socket) { 
    socket.on('new_count_message', function (data) { 
     console.log('new_count_message' + data); 
     io.sockets.emit('new_count_message', { 
      new_count_message: data.new_count_message 
     }); 
    }); 
}); 

完全错误:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: listen EADDRINUSE 
    at errnoException (net.js:901:11) 
    at Server._listen2 (net.js:1039:14) 
    at listen (net.js:1061:10) 
    at Server.listen (net.js:1135:5) 
    at Object.<anonymous> (/var/www/signal/nodeJs/server.js:8:8) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
+2

真正的错误是'EADDRINUSE' - 地址已在使用。 – deceze

+0

'''EADDRINUSE'''表示端口已被使用。 –

回答

1

Error: listen EADDRINUSE表示您尝试运行的端口已被使用。

尝试更改为使用其他端口。

所以var port = process.env.PORT || 3000;更改为var port = process.env.PORT || 4000;,打localhost:4000