Node.js 错误:监听 EADDRINUSE:地址已在使用中
这篇快速文章向您展示了如何解决使用 Node.js 时可能遇到的常见错误。
问题
在开发 Node.js 应用程序(使用 Express.js)时,我有时会遇到以下问题:
Error: listen EADDRINUSE: address already in use :::3000
完整的错误信息:
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (node:net:1380:16)
at listenInCluster (node:net:1428:12)
at Server.listen (node:net:1516:7)
at Function.listen (/Users/goodman/Desktop/Projects/kindacode/api/node_modules/express/lib/application.js:635:24)
at server (/Users/goodman/Desktop/Projects/kindacode/api/src/index.ts:60:7)
at bootstrap (/Users/goodman/Desktop/Projects/kindacode/api/src/index.ts:73:3)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
code: 'EADDRINUSE',
errno: -48,
syscall: 'listen',
address: '::',
port: 3000
}
控制台消息表明我正在尝试使用某个程序正在使用的端口运行我的应用程序。这发生在我的应用程序崩溃后。在幕后,很可能有一个终端窗口隐藏在后台仍在运行应用程序。如果您遇到与我相同的问题,请不要惊慌。下面是解决方案。
解决方案
我们要做的其实很简单:杀死端口上正在运行的进程。执行以下命令:
npx kill-port 3000
如果您需要释放 3000 以外的端口,请在该端口上运行上述命令。也可以一次终止多个端口:
npx kill-port 3000 4000 5000 6000 7000
可以解决此问题以及许多其他问题的另一种解决方案只是重新启动计算机(在这种情况下您甚至不必这样做)。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。