繁体   English   中英

无法收听节点应用

[英]unable to listen to node app

我正在尝试使用express和socket.io创建一个带有节点的应用程序,但是我遇到了一个问题。 在终端中,当我键入node app.js时,它说“ TypeError:Object#没有方法'listen'”相当于io.listen(http); 怎么了

错误

/Users/peter/Dropbox/testapp/app.js:15
http.listen(3000);
     ^
TypeError: Object #<Object> has no method 'listen'

    // express module
var express = require('express'),
    // http module
    //http = require('http').createServer(app).listen(3001),
    http = require('http'),
    // socket.io module
    //io = require('socket.io').listen(http);
    io = require('socket.io'),
    // node onject
    app = express();

// create server
http.createServer(app);
//listen to server on port 3000
http.listen(3000);
// listen to http server object
io.listen(http);

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

您说的是问题所在的行不是输出说的是问题所在的行,但是它们都是相同的问题。

listen()不是http一部分,而是对象ceateServer()返回的(类型为http.Server )。 这也是socket.io位的问题,因为它们都期望实际的服务器对象。 我想你想要的是:

var server = http.createServer(app);
io.listen(server);
server.listen(3000);

通过查看注释掉的代码,我可以理解为什么这可能会混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM