Разрешение «Ошибки: прослушивание EADDRINUSE: адрес уже используется ::: 1337 в окнах Server.setupListenHandle» в Node.js

При работе с Node.js вы можете столкнуться с ошибкой «Ошибка: прослушать EADDRINUSE: адрес уже используется :::1337 в Server.setupListenHandle windows». Эта ошибка указывает на то, что указанный порт уже используется другим процессом или сервером. В этой статье блога мы рассмотрим несколько способов устранения этой ошибки, а также приведем примеры кода, которые помогут вам устранить неполадки и устранить ее.

Метод 1. Измените номер порта

Одно из самых простых решений — изменить номер порта, который пытается прослушивать ваше приложение Node.js. Для этого измените код, в котором вы настраиваете порт прослушивания вашего сервера. Вот пример:

const port = 3000; // Change this to a different port number
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

Метод 2: завершить процесс с помощью порта

Если изменить порт невозможно, вы можете определить и завершить процесс, который в данный момент использует этот порт. Этот метод полезен, если вы хотите освободить порт для вашего приложения Node.js. Вот как этого можно добиться в Windows:

  1. Откройте командную строку от имени администратора.
  2. Выполните следующую команду, чтобы найти процесс, использующий порт:
netstat -ano | findstr :1337
  1. Определите идентификатор процесса (PID) для процесса, использующего порт.
  2. Завершите процесс, выполнив команду:
taskkill /F /PID <PID>

Метод 3. Используйте другой порт в Windows

Иногда определенные порты в Windows зарезервированы или заблокированы. В таких случаях вы можете попробовать использовать другой номер порта. Вот пример:

const port = 8080; // Change this to a different port number
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

Метод 4: дождитесь освобождения порта

Если порт временно используется, вы можете дождаться его освобождения, а затем запустить приложение Node.js. Вы можете реализовать механизм повтора, используя цикл и задержку. Вот пример:

const port = 3000;
const retryDelay = 1000; // milliseconds
function startServer() {
  app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
  });
}
function tryStartServer() {
  try {
    startServer();
  } catch (error) {
    if (error.code === 'EADDRINUSE') {
      console.log(`Port ${port} is in use. Retrying in ${retryDelay}ms...`);
      setTimeout(tryStartServer, retryDelay);
    } else {
      console.error(error);
    }
  }
}
tryStartServer();

Ошибка «Ошибка: прослушивание EADDRINUSE: адрес уже используется :::1337 в Server.setupListenHandle windows» в Node.js указывает на то, что указанный порт уже используется. В этой статье мы обсудили несколько способов устранения этой ошибки, включая изменение номера порта, завершение процесса, использующего порт, использование другого порта и ожидание освобождения порта. Следуя этим методам и используя предоставленные примеры кода, вы сможете устранить и исправить эту ошибку в своих приложениях Node.js.