Как устранить ошибку «Ошибка: прослушать EADDRINUSE: адрес уже используется»?

Kak Ustranit Osibku Osibka Proslusat Eaddrinuse Adres Uze Ispol Zuetsa



Node.js — это среда выполнения, которая позволяет выполнять код, написанный на языке JavaScript, на веб-странице или локальном сервере. Это однопоточная среда, имеющая асинхронный характер. Он предлагает различные встроенные и внешние модули, которые можно использовать для выполнения различных операций, таких как отправка HTTP-запросов через сервер. При взаимодействии с различными локальными серверами существует вероятность возникновения нескольких ошибок, которые можно устранить, следуя конкретным руководствам.

В этом руководстве объясняются возможные исправления ошибки «прослушивать EADDRINUSE: адрес уже используется», охватывая следующие разделы:

Как устранить ошибку «Ошибка: прослушать EADDRINUSE: адрес уже используется»?

« Ошибка: прослушать EADDRINUSE: адрес уже используется возникает, когда несколько приложений или задач пытаются получить доступ к одному и тому же порту. Эта ошибка может возникнуть на этапах тестирования или разработки. Например, для лучшего понимания будет сгенерирована вышеупомянутая ошибка:







константа экспрессObj '=' требовать ( 'выражать' )
константа демо-приложение '=' экспрессObj ( )
демо-приложение. получать ( '/' , ( требование, разрешение ) => {
рез. JSON ( {
имя : «Статья Linuxhint о CORS» ,
язык : «Узел.js» ,
приложение : 'corsApp' ,
источник : «Перекрестное происхождение» ,
промежуточное программное обеспечение : «КОРС»
} )
} )
демо-приложение. слушать ( 8080 , ( ) => {
консоль. бревно ( `Сервер запущен 'http://localhost:8080/' ` )
} )
демо-приложение. слушать ( 8080 , ( ) => {
консоль. бревно ( `Сервер запущен 'http://localhost:8080/' ` )
} )

Приведенный выше фрагмент кода работает следующим образом:



  • Сначала импортируйте « выражать ” и сохраните его объект в новой переменной “ экспрессObj ». Используйте эту переменную в качестве конструктора для создания нового экспресс-приложения с именем « демо-приложение ».
  • Затем создайте запрос GET, используя « получать() ” и установите домашнюю страницу в качестве корневого обработчика, передав “ / » в качестве первого параметра. Второй параметр — это анонимная функция обратного вызова, которая отправляет « JSON ” данные в ответ на использование “ json() метод.
  • После этого заставьте это приложение выполняться через тот же номер порта « 8080 ' два раза. Такое выполнение одного и того же порта два раза приводит к указанной ошибке.

Сгенерированный вывод после компиляции приведенного выше кода показывает возникновение ошибки «Ошибка: прослушивание EADDRINUSE: адрес уже используется»:







В основном существует два решения для устранения ошибки, возникшей в приведенном выше выводе: изменить номера портов или остановить один из запущенных процессов. Но есть и множество других исправлений, которые косвенно устраняют проблему « Ошибка: прослушать EADDRINUSE: адрес уже используется ' ошибка. Эти решения вместе с практическими демонстрациями изложены ниже:

Решение 1. Запускайте процессы на разных портах

Наиболее рекомендуемое решение упомянутой ошибки — определить номера портов, на которых работают обе службы, например: « 8080 ». Затем случайным образом выберите одну службу и измените ее номер порта, чтобы службы прослушивали локальный хост, но с разными номерами портов. Наш код после обсуждаемой модификации показан ниже:



константа экспрессObj '=' требовать ( 'выражать' )
константа демо-приложение '=' экспрессObj ( )
демо-приложение. получать ( '/' , ( требование, разрешение ) => {
рез. JSON ( {
имя : «Статья Linuxhint о CORS» ,
язык : «Узел.js» ,
приложение : 'corsApp' ,
источник : «Перекрестное происхождение» ,
промежуточное программное обеспечение : «КОРС»
} )
} )
демо-приложение. слушать ( 8080 , ( ) => {
консоль. бревно ( `Сервер запущен 'http://localhost:8080/' ` )
} )
демо-приложение. слушать ( 3000 , ( ) => {
консоль. бревно ( `Сервер запущен 'http://localhost:8080/' ` )
} )

Вывод, сгенерированный после выполнения приведенного выше кода, показывает, что теперь « Ошибка: прослушать EADDRINUSE: адрес уже используется » проблема решена:

Решение 2. Остановка процессов, работающих на том же порту

Другой способ устранить ошибку «прослушивать EADDRINUSE: адрес уже используется» — остановить процессы, работающие на определенном порту, который уже используется. Это приведет к тому, что порт будет простаивать, к которому разработчик сможет получить доступ для выполнения определенных задач. Этот процесс остановки выполняется с помощью внешнего модуля под названием « Kill-порт ».

Например, все процессы, запущенные на указанном номере порта « 8080 будут убиты с помощью « Kill-порт » модуль. Существует два способа использования модуля «kill-port», и оба эти подхода изложены ниже:

Способ 1. Используйте модуль «kill-port» после установки.

« Kill-порт ” — это сторонний внешний модуль, и для использования этого модуля внутри проекта node.js. Этот модуль необходимо сначала загрузить, выполнив приведенную ниже команду:

npm установить убить - порт - г

На рисунке ниже показано завершение установки « Kill-порт ' переменная:

После установки пользователь может убить службы для нужного номера порта. В нашем случае услуги номера порта « 8080 » будут уничтожены с помощью указанной ниже команды:

убийство - порт -- порт 8080

Вывод ниже подтверждает, что все службы для порта « 8080 были убиты:

Способ 2: использовать модуль «kill-port» без установки

« Kill-порт Модуль ” можно использовать без прохождения процесса установки, используя модуль “ npx » бегун по пакетам. Например, « Kill-порт Модуль «используется для уничтожения указанных двух портов с помощью команды запуска пакета «npx», указанной ниже:

npx убить - порт 8080 9000

Вывод ниже показывает, что службы для указанных портов « 9000 ' и ' 8080 были убиты:

Дополнительный совет: удаление модуля «kill-port».

Чтобы удалить « Kill-порт ” глобально из системы выполните следующую команду:

npm удалить убийство - порт - г

Решение 3. Завершите работу служб Node.js в Windows

Если сообщение «Ошибка: прослушивание EADDRINUSE: адрес уже используется» все еще сохраняется, уничтожьте все работающие « узел.js » сервисы с использованием графического пользовательского интерфейса или интерфейса командной строки.

Использование подхода CLI

Нажмите ' Окно », чтобы открыть строку поиска и ввести « КМД » внутри поля поиска из сгенерированных результатов. Затем выберите « Командная строка » и нажмите кнопку « Запустить от имени администратора ' кнопка:

При выборе этой опции появится новое окно управляющей подсказки. Чтобы завершить работающие в данный момент службы «node.js» в фоновом режиме, выполните следующую команду:

тасккилл / Ф / ИМ-узел. Exe

Сгенерированный вывод показывает, что службы «node.js» были прекращены:

Использование подхода с графическим интерфейсом

Чтобы завершить работу служб node.js в системе, откройте « Диспетчер задач », нажав кнопку « Ctrl + Shift + Esc ключи немедленно. Открыв «Диспетчер задач», перейдите к « Подробности типа, выберите « узел.exe » и нажмите « Завершить задачу Кнопка «», расположенная в правом нижнем углу, как показано ниже:

Вот и все, что касается устранения ошибки «Ошибка: прослушайте EADDRINUSE: адрес уже используется» в Node.js.

Заключение

«Ошибка: прослушивание EADDRINUSE: адрес уже используется» возникает, когда несколько служб пытаются использовать один порт одновременно. Чтобы решить эту проблему, пользователь должен попытаться использовать другой номер порта или отключить службы, которые уже запущены на указанном номере порта, используя команду « Kill-порт » модуль. Если ошибка по-прежнему не устранена, убейте все работающие « узел.js » службы из диспетчера задач и перезапустите приложение. В этом руководстве проиллюстрированы возможные решения проблемы «Ошибка: прослушайте EADDRINUSE: адрес уже используется».