Node.js 端口 3000 已在使用中,但实际上并未使用?

IT技术 javascript node.js npm port
2021-02-23 10:29:07

我已经使用 node.js 项目工作了几个星期,而且效果很好。通常,我npm start用来运行我的应用程序并在本地主机的浏览器中查看它,端口为 3000。

今天,我在使用 npm start 时开始出现以下错误:

Server started on port 3000                                                                                                                                                                                         
Port 3000 is already in use 

我已经检查了资源监视器并且我没有在端口 3000 上运行其他进程。为什么我会收到此错误消息?

在我的 app.js 中,我有以下代码来设置端口......这是不正确的吗?它之前运行良好,所以我不确定我做错了什么。

// Set Port
app.set('port', (process.env.PORT || 3000));
app.listen(app.get('port'), function() {
    console.log('Server started on port '+app.get('port'));
});

谢谢您的帮助!


编辑:

我尝试运行 netstat 和 TCPView 来检查哪个进程正在使用该端口,但没有使用该端口。我也尝试重新启动我的笔记本电脑,但我仍然遇到同样的错误。

6个回答

您可以搜索如何终止该进程。

对于Linux/Mac OS (sudo) run,在终端中搜索

$ lsof -i tcp:3000
$ kill -9 PID

在 Windows 上:

netstat -ano | findstr :3000
tskill typeyourPIDhere 

更改tskilltaskkillGit中的bash

有没有办法动态获取正在运行的进程的PID并杀死它?出于某种原因,我每次手动部署到 prod 时都必须这样做。旁注,确定这是否与 PM2 有关。
2021-04-27 10:29:07
我已经在 Windows 上尝试了许多其他解决方案,但是这个解决方案发现了占用端口的奇怪进程。除了在 Windows 上工作外,还包括 linux 方法,因此赢得了赞誉。
2021-04-30 10:29:07
taskkill 在 git-bash 上对我不起作用,但 tskill 对我有用。谢谢。
2021-05-15 10:29:07
tskill 在 Windows 上对我不起作用。taskkill /F /PID myPIDhere - 这个工作
2021-05-17 10:29:07
我一无所获,lsofsudo lsof 我得到了一些东西,杀死该进程解决了这个问题。
2021-05-21 10:29:07

或许你可以以此为参考。这个单一的命令行可以终止在给定端口上运行的进程。

npx kill-port 3000

在此处输入图片说明


杀死多个端口。

npx kill-port 3000 8080 4200
是的,它正在工作,谢谢,但它安装了什么软件包?
2021-04-28 10:29:07
npx kill-port 3000为我工作。谢谢@Penny
2021-05-03 10:29:07
哇...这绝对拯救了我的夜晚
2021-05-07 10:29:07
我不知道这个包存在。只有早上 7:30,我的一天已经结束了。
2021-05-12 10:29:07

有时它会发生,正如@sova 所建议的那样有时会发生在我身上,EADDR 正在使用中。通常,有一个隐藏在后台的终端窗口仍在运行该应用程序。这对我来说也是正确的。

它发生了,当你打开终端很长时间时,是的,你是对的,你已经停止了这个过程。但有时它并没有在后台停止。所以最好的解决方案是关闭终端并重新启动它。它会解决你的问题。因为在我的情况下它有效。

还,

sudo lsof -i:<PORT_NO>

关闭当前实例,但无法在后台停止进程。所以有一次,

sudo kill <PID>

有效,但是当我们更新我们的代码并保存时,这个问题再次发生,就像Nodemon 一样

所以退出终端即可解决问题。或者

  killall -9 node
lsof 或 netstat 都没有返回任何内容,但似乎仍有一些进程在使用该端口。killall -9 node我能够在本地运行服务器之后。
2021-05-09 10:29:07
感谢 killall -9 节点命令。它适用于 goorm IDE
2021-05-16 10:29:07

我有同样的问题。(以下步骤在 Windows 10 上运行良好):

  1. 打开任务管理器(按Ctrl+ Alt+ Delete
  2. 选择“进程选项卡”
  3. 搜索“Node.js:服务器端 JavaScript”
  4. 选择它并单击“结束任务”按钮

现在您可以运行npm start.

希望对你有帮助。

我也遇到了同样的问题。解决的最佳方法是(对于 Windows)

  1. 转到任务管理器

  2. 滚动并找到名为的任务进程。 Node.js:服务器端 JavaScript 添加图片以供参考

  3. 结束这个特殊的任务。

你去吧!现在执行npm start,它会像以前一样工作!