【问题标题】:unable to listen to node app无法收听节点应用程序
【发布时间】:2014-03-29 11:50:29
【问题描述】:

我正在尝试使用 express 和 socket.io 制作一个带有 node 的应用程序,但我遇到了一个问题。在终端中,当我键入 node app.js 时,它说“TypeError: Object # has no method 'listen'” 引用 hte 行 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');
});

【问题讨论】:

    标签: javascript node.js express socket.io


    【解决方案1】:

    你所说的问题不是输出所说的问题,但它们都是同一个问题。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 2018-03-05
      • 1970-01-01
      相关资源
      最近更新 更多