You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mongoose.connect()后io.on()无法正常工作的问题求助

问题原因及解决方案

核心问题:Socket.IO 事件名错误

你的代码里服务器端监听客户端连接用了 io.on('connect', ...),但Socket.IO服务器端正确的连接事件名是 connection,connect是客户端侧的事件名,服务器端必须监听connection才能捕获到客户端的连接请求——这就是io.on失效的直接原因。

修改代码:

io.on('connection',(socket)=>{ // 将connect替换为connection
    console.log("user connected")
})

额外问题:MongoDB 连接URL为空

你的dbUrl是空字符串,这会导致MongoDB无法正常建立连接。虽然当前终端输出err为null,但这并不代表连接成功,请将dbUrl替换为有效连接字符串(比如本地地址mongodb://localhost:27017/your-db-name或云服务提供的地址),否则后续数据库操作会报错。

修改示例:

const dbUrl = 'mongodb://localhost:27017/chat-app'; // 替换为你的实际数据库连接地址

验证修改效果

重启服务器后:

  1. 终端会输出server is running:5000,若MongoDB连接成功则mongo db connection后显示null,失败则会打印具体错误信息
  2. 当有客户端连接Socket.IO时,终端会打印user connected,说明io.on已正常工作

内容的提问来源于stack exchange,提问作者Sudipta Bose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:45:50