【问题标题】:Node js port is already in use节点 js 端口已在使用中
【发布时间】:2019-09-01 21:53:17
【问题描述】:

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

【问题讨论】:

  • 能否提供NodeJS进程的完整日志? js代码也会有帮助
  • sudo netstat -npl | grep 3000。没有 sudo 的 netstat 不会显示您不拥有的进程

标签: node.js process localhost port web-hosting


【解决方案1】:

从您的代码中,您尝试将套接字模块绑定到端口 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 文档)

【讨论】:

  • @Iaiao 这样你只是在改变端口。请参考文档并将其绑定到服务器本身...
【解决方案2】:

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

Resource Monitor

【讨论】:

  • 我没有看到 3000 端口。端口与 cmd netstat 中的相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多