节点 js 端口已被使用

Node js port is already in use

当我启动我的网络服务器时,节点抛出 listen EADDRINUSE: address already in use :::3000,我尝试使用 netstat 并搜索 3000 端口(或另一个,它发生在任何端口),但没有找到。任务管理器中也没有节点进程,localhost:3000 上没有网页。我也尝试重新加载 windows,但没有任何改变。

假设您使用的是 Windows 10,我建议您尝试使用资源监视器。 Network 选项卡有一个名为 Listening Ports 的视图,它应该告诉您哪个进程正在使用端口 3000

Resource Monitor

根据您的代码,您正试图将套接字模块绑定到端口 3000:

var io = require('socket.io')(3000);
/* ... */
app.listen(3000);

以这种方式,当服务器尝试绑定自身时,端口已经 in use

您必须创建 HTTP 服务器,然后在其上绑定 socket.io 模块:

const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', () => { /* … */ });
server.listen(3000);

(摘自 socket.io 文档)