Nodemon:错误:监听EADDRINUSE:地址已在使用::: 5000

问题描述 投票:0回答:2

我正在创建一个项目,并使用nodejs,表示后端。一切正常,但是当我在文件中进行任何更改时,由于以下错误,nodemon无法重新启动服务器:

Error: listen EADDRINUSE: address already in use :::5000

index.js:

const express = require("express");
const morgan = require("morgan");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
const session = require("express-session");
const FileStore = require("session-file-store")(session);
const dotenv = require("dotenv");
var passport = require("passport");

dotenv.config();

const PORT = process.env.PORT || 5000;

const app = express();

.....

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

package.json

{
  "name": "chat-app-backend",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon --ignore 'sessions/' index.js"
  },
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "cookie-parser": "^1.4.5",
    "cors": "^2.8.5",
    "debug": "~2.6.9",
    "dotenv": "^8.2.0",
    "express": "~4.16.0",
    "express-session": "^1.17.0",
    "http-errors": "~1.6.2",
    "jade": "~1.11.0",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.9.4",
    "morgan": "~1.9.0",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "passport-local-mongoose": "^6.0.1",
    "session-file-store": "^1.4.0",
    "uuid": "^7.0.2"
  },
  "devDependencies": {
    "nodemon": "^2.0.2"
  }
}

我必须每次都从终端显式终止服务器,这不是最佳解决方案。我尝试了几件事,但没有任何效果。甚至在nodemon GitHub问题页面上发现了一些问题,但我也找不到任何东西。

即使服务器正在关闭服务器,我也要添加lsof -i:5000的输出-节点31625 rishav 20u IPv6 5300049 0t0 TCP *:5000(LISTEN)

javascript node.js express nodemon
2个回答
1
投票

您的端口在其他地方使用。您很可能忘记了在运行新实例之前停止节点的先前实例。


0
投票

您可以尝试在其他端口(例如3000)上运行服务器。

如果仍要使用相同的端口,则可以使用以下命令来获取该特定端口上正在运行的进程的列表:

lsof -i tcp:3000 

在终端中使用以下命令杀死正在运行的端口

sudo kill -9 $(lsof -i tcp: 3000 -t)
© www.soinside.com 2019 - 2024. All rights reserved.