当前位置: 首页 > 知识库问答 >
问题:

ode.js端口3000已经在使用,但实际上没有?

松涵容
2023-03-14

我一直在使用一个节点。js项目进行了几个星期,它一直工作得很好。通常,我使用npm start运行我的应用程序,并在本地主机端口3000上的浏览器中查看它。

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

Server started on port 3000                                                                                                                                                                                         
Port 3000 is already in use 

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

在我的应用程序中。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来检查哪个进程正在使用该端口,但是没有任何进程使用该端口。我也尝试重新启动我的笔记本电脑,但我仍然得到相同的错误。

共有3个答案

滕夜洛
2023-03-14

有时会发生,正如@sova所提议的,这有时会发生在我身上,EADDR正在使用。通常有一个终端窗口隐藏在后台,仍然在运行应用程序。我也是这样。

它发生了,当你打开终端很长时间,是的,你有权利,你必须停止这个过程。但有时它并没有停在背景中。所以最好的解决方案是关闭终端,然后重新启动。它会解决你的问题。因为在我的情况下,它的工作。

还有,

sudo lsof -i:<PORT_NO>

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

sudo kill <PID>

工作正常,但当我们更新代码并保存时,这个问题再次出现,就像Nodemon一样。

因此,退出终端将解决问题。或

  killall -9 node
涂选
2023-03-14

也许你可以把这个作为参考。这个命令行可以终止在给定端口上运行的进程。

npx kill-port 3000

杀死多个端口。

npx kill-port 3000 8080 4200
束作人
2023-03-14

您可以搜索如何杀死该进程

对于Linux/Mac OS搜索(sudo),请在终端中运行此操作:

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

在Windows上:

netstat -ano | findstr :3000
tskill typeyourPIDhere 

在git bash中更改taskkilltskill

 类似资料:
  • 问题内容: 我在服务器上运行了一个Node.js / Express.js应用程序,该应用程序仅在端口3000上运行,我试图找出原因。这是我发现的: 如果不指定端口(),则该应用会运行,但网页不会加载。 在端口3001()或任何其他未使用的端口上,应用程序运行,但网页未加载。 在端口2999上,该应用程序引发错误,因为其他人正在使用该端口。 在端口3000上,该应用程序运行,并且网页加载正常。 我

  • 我有一个java进程,它使用ServerSocket API(Java8)并绑定到本地端口12000。进程在Windows服务包装器(exe4j)下运行。我有一个计划任务,在凌晨4点运行,停止服务并在几秒钟后重新启动它。该进程安装在400多个客户位置。 直到上周五,一切都很顺利。一些进程未能在凌晨4点正确重新启动。在我能够连接和验证的2台服务器上,重新启动失败,并显示“地址已在使用中:JVM_Bi

  • 我的服务器上运行了一个node.js/express.js应用程序,它只在3000端口上工作,我正在试图找出原因。以下是我的发现: 在不指定端口()的情况下,应用程序会运行,但网页不会加载。 在端口3001()或任何其他未使用的端口上,应用程序运行但网页不加载。 在端口2999上,应用程序抛出错误,因为其他东西正在使用该端口。 在端口3000上,应用程序运行,网页加载良好。 我知道Express应

  • 我一直在关注这个(http://socket.io/get-started/chat/)关于如何使用socket.io制作简单聊天应用程序的教程。 但是,我尝试使用Express创建它,我想知道为什么端口3000已经在使用中?除非我更改端口号,否则下面的代码将无法工作。 express是不是用端口做路由之类的其他事情?有没有一种简单的方法可以发现该端口上发生了什么? 我也可能对我需要的东西做了一些

  • 我使用硒网格(在4个浏览器上运行测试:FF13、FF16、IE9和chrome。每个浏览器都在不同的机器上。在测试的相关部分,我找到一个可点击的元素并单击它。在FF13、IE9和chrome上,它工作得很好:元素被找到并被点击。在FF16上,找到了该元素,并且webdrier“声称”它点击了它,但按钮的动作(改变页面上表格的布局)不会发生。 注意:我使用版本2.25谢谢,Tizki

  • Spring靴:1.4.0.M1 我有一个IIS在端口80上运行,但是我已经通过STS配置属性将Sever.port更改为8090。STS屏幕快照 为什么STS embedded tomcat在更改后仍使用端口80?有点迷惑。