Узел: Ошибка: прослушивание EADDRINUSE: адрес уже используется ::: 5000 - PullRequest
0 голосов
/ 13 апреля 2020

Я создаю проект и использую nodejs, express для бэкэнда. Все работает нормально, но, поскольку я делаю какие-либо изменения в файле, nodemon не может перезапустить сервер из-за следующей ошибки:

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

index. js: * Пакет 1007 *

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}!`));

. 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"
  }
}

Я должен каждый раз явно убивать сервер из терминала, что не является оптимальным решение. Я попробовал несколько вещей, но ни одна не работает. Даже обнаружил какую-то проблему на странице проблемы GitHub для nodemon, но там также я ничего не смог найти.

Я также добавляю вывод lsof -i: 5000 , даже если сервер I закрываю сервер - узел 31625 рисхав 20u IPv6 5300049 0t0 TCP *: 5000 (СЛУШАТЬ)

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Ваш порт используется где-то еще. Скорее всего, вы забыли остановить предыдущий экземпляр узла перед запуском нового.

0 голосов
/ 13 апреля 2020

Вы можете попробовать запустить свой сервер на каком-то другом порту, например 3000.

Если вы все еще хотите использовать тот же порт, то вы можете использовать следующую команду, чтобы получить список запущенных процессов на этом конкретном порту. :

lsof -i tcp:3000 

Используйте следующую команду в терминале, чтобы уничтожить этот работающий порт

sudo kill -9 $(lsof -i tcp: 3000 -t)
...