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

2022-08-30 00:07:53

我已经使用节点.js项目几周了,它一直运行良好。通常,我用于运行我的应用程序并在本地主机端口3000上的浏览器中查看它。npm start

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


答案 1

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

对于 Linux/Mac OS,请在终端中搜索以下内容:(sudo) run

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

在视窗上:

netstat -ano | findstr :3000
tskill typeyourPIDhere 

在 git bash 中更改 tskill for taskkill


答案 2

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

npx kill-port 3000

enter image description here


杀死多个端口。

npx kill-port 3000 8080 4200