【问题标题】:EADDRINUSE: address already in use :::5000 only in my computerEADDRINUSE:地址已在使用 :::5000 仅在我的计算机中
【发布时间】:2021-11-11 04:57:59
【问题描述】:

所以正如我在标题中所写,我知道我的 5000 端口正在使用中,尽管它不是,我在 Mac OS 上,我试图像往常一样终止该端口。

npx kill-port 5000

在我的节点应用程序中也更改了端口,但它是相同的,我也尝试过

sudo lsof -i :5000

sudo killall -9 node

似乎没有任何效果,对我来说最奇怪的部分是它在另一台计算机上完全可以正常工作,如果重要的话是 Windows 操作系统。

这是完整的错误消息,您可以看到反应成功运行,但节点声称该端口正在使用中。

[0] events.js:292
[0]       throw er; // Unhandled 'error' event
[0]       ^
[0] 
[0] Error: listen EADDRINUSE: address already in use :::5000
[0]     at Server.setupListenHandle [as _listen2] (net.js:1318:16)
[0]     at listenInCluster (net.js:1366:12)
[0]     at Server.listen (net.js:1452:7)
[0]     at Function.listen (/Users/hamudi/Documents/Learning/Mini Projects/devMeet/node_modules/express/lib/application.js:618:24)
[0]     at Object.<anonymous> (/Users/hamudi/Documents/Learning/Mini Projects/devMeet/server.js:45:5)
[0]     at Module._compile (internal/modules/cjs/loader.js:1063:30)
[0]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
[0]     at Module.load (internal/modules/cjs/loader.js:928:32)
[0]     at Function.Module._load (internal/modules/cjs/loader.js:769:14)
[0]     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
[0]     at internal/main/run_main_module.js:17:47
[0] Emitted 'error' event on Server instance at:
[0]     at emitErrorNT (net.js:1345:8)
[0]     at processTicksAndRejections (internal/process/task_queues.js:80:21) {
[0]   code: 'EADDRINUSE',
[0]   errno: -48,
[0]   syscall: 'listen',
[0]   address: '::',
[0]   port: 5000
[0] }
[0] [nodemon] app crashed - waiting for file changes before starting...
[1] ℹ 「wds」: Project is running at http://10.0.0.5/
[1] ℹ 「wds」: webpack output is served from 
[1] ℹ 「wds」: Content not from webpack is served from /Users/hamudi/Documents/Learning/Mini Projects/devMeet/client/public
[1] ℹ 「wds」: 404s will fallback to /
[1] Starting the development server...

提前致谢。

【问题讨论】:

  • 您是否尝试重新启动计算机?
  • 是的,因为我虽然可能是 Mac 上的东西,但我仍然这样做,但不完全确定。

标签: node.js reactjs mern


【解决方案1】:

如果您使用*nix,您可以使用netstat -ap | grep &lt;portnumber&gt; 查看具体正在使用的进程;它可能是另一个资源/服务,例如 Docker。

值得注意的是,netstat 也适用于 Powershell(在 Win 11 中测试),但不支持 grep,因此您可能只需要关注列表即可。

【讨论】:

  • 在我的 mac 上不起作用,netstate 需要一个参数
  • 你是否传递了参数-ap
  • 是的,但很高兴知道我已经解决了这个问题,正如我在下面所说的那样,它来自苹果最新的软件更新。
【解决方案2】:

天哪,几天后,我刚刚设法解决了这个问题。 所以让我们简单点: 如果您是 Mac 用户并且最近将您的操作系统更新到 Monterey,那么您应该知道 Apple 正在将此端口用于 Airplay 接收器

there’s a new setting under System Preferences -> Sharing called Airplay Receiver.

关闭它。

现在你当然可以更改端口,但我不建议将其关闭,但只是为了让你检查并了解导致问题的原因,当你关闭它时它会起作用(至少它为我做了),然后你可以重新打开它并在 node.js 中更改你的端口

“完成此操作后,您应该会发现 5000 端口立即被释放。Apple 会选择这样一个常用的端口,特别是对于开发人员来说,这很奇怪!”

我在这里找到了这个: https://utf9k.net/questions/macos-port-5000-monterey/

【讨论】:

    猜你喜欢
    • 2020-11-09
    • 2020-07-25
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2013-12-02
    相关资源
    最近更新 更多