【问题标题】:Node.js + ExpressJS + Socket.IO TypeError: obj.on is not a functionNode.js + ExpressJS + Socket.IO 类型错误:obj.on 不是函数
【发布时间】:2015-11-05 21:06:39
【问题描述】:

不幸的是,我在工作中遇到了障碍。我有一个 node.js+ExpressJS 后端通过 Socket.io 连接到前端,并创建了服务器和客户端,如下所示:

app.js:

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
// Routes and io.on statement with listeners on 'connection'
server.listen(2000);
io.listen(2000);

索引.html:

<!doctype html>
<!--- html stuff --->
<script src='/socket.io/socket.io.js'></script>
<script src='/js/jquery.min.js></script>
<script>
    $(document).ready(function() {
        var socket = new io.Socket('localhost', {port: 2000});
        socket.connect();
        // other js that doesn't get picked up
    });
    </script>

当我在浏览器中打开控制台时会发生什么:

io.connect();
TypeError: obj.on is not a function

是我遗漏了什么,还是我的代码遭遇了不幸?

【问题讨论】:

    标签: javascript node.js express socket.io typeerror


    【解决方案1】:

    请尝试更改您的 index.html:

    var socket = new io.Socket('localhost', {port: 2000});
    socket.connect();
    

    到:

    var socket = io.connect();
    

    【讨论】:

    • 我正在使用不同的库,但可以确认 obj.on is not a function 是由于未使用使用 new 创建的对象。谢谢。
    猜你喜欢
    • 2018-08-27
    • 2023-03-23
    • 1970-01-01
    • 2019-02-05
    • 2018-09-29
    • 1970-01-01
    • 2023-02-01
    • 2021-01-24
    • 2012-01-26
    相关资源
    最近更新 更多