TypeError:require(...)不是节点js

时间:2016-01-11 06:39:45

标签: javascript node.js http get socket.io

我正在尝试学习节点j并尝试一些示例代码,当我遇到socket.io网站时,我在他们的网站上尝试了示例代码。我不认为他们网站上的代码是错误的。我在运行代码时遇到的错误,我不知道如何解决,我不知道我做错了什么。我对节点js很新,请帮帮我。这是链接 website  我拿了代码。

这是我试图运行的代码。

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

app.get('/', function(req, res){
res.sendfile('index.html');
});

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

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

我在运行代码时遇到的错误是

var io = require('socket.io')(http);                                                                                                               
                         ^                    
TypeError: require(...) is not a function                                                                                                          
at Object.<anonymous> (/home/ubuntu/workspace/index.js:3:30)                                                                                   
at Module._compile (module.js:434:26)                                                                                                          
at Object.Module._extensions..js (module.js:452:10)                                                                                            
at Module.load (module.js:355:32)                                                                                                              
at Function.Module._load (module.js:310:12)                                                                                                    
at Module.runMain [as _onTimeout] (module.js:475:10)                                                                                           
at Timer.listOnTimeout (timers.js:89:15)

1 个答案:

答案 0 :(得分:2)

像@venogopal所说,问题可能是socket.io的版本:

代表0.9.x

var io = require('socket.io')(http);

代表1.x.x

var io = require('socket.io').listen(http);