Error: listen EADDRINUSE: address already in use 3000;

Error: listen EADDRINUSE: address already in use 3000;

我的根目录中有一个 .env 文件,里面 PORT = 3000;

在我的 app.js 中,我使用 .env 文件来监听端口 3000

require('dotenv').config();

const express = require('express');
const app = express();
const port = process.env.PORT || 4000;

app.get('/', (req, res) => {
  res.send('Hello World!!!');
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

尝试 运行 文件后,出现以下错误

Error: listen EADDRINUSE: address already in use 3000;

我在 Mac,所以我尝试在终端中使用 sudo lsof -i :3000,但系统要求我输入密码。

我输入密码并按下 Enter 键,但没有任何反应。

如何消除错误?我相信我的密码是正确的。我今天确实收到了一个巨大的 Mac OS 更新——这会不会导致一些与密码相关的问题?

正在将 app.js 文件更改为

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

require('dotenv').config();

app.get('/', (req, res) => {
  res.send('Hello World!!!');
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

解决了问题,但 .env 中的 PORT 未被读取...

试试这个命令:

sudo ps -ef | grep 3000

您可以简单地更改端口号

从 3000 到 3010 或什么

远离已经使用的端口

我在 Windows 上使用此命令修复了此 错误 :

netstat -ano | findstr :3000. 

在上面输入此命令后,您将获得此 TCP 地址:

  TCP    0.0.0.0:3000           0.0.0.0:0              LISTENING       12356
  TCP    [::]:3000              [::]:0                 LISTENING       12356

然后运行:

taskkill /PID 12356 /F

例如:

C:\Users\Desktop\nodejs>netstat -ano | findstr :3000

  TCP    0.0.0.0:3000           0.0.0.0:0              LISTENING       12356
  TCP    [::]:3000              [::]:0                 LISTENING       12356

C:\Users\Desktop\nodejs>taskkill /PID 12356 /F

SUCCESS: The process with PID 12356 has been terminated.