Я создал приложение expressjs, используя следующие команды:
express -e folderName
npm install ejs --save
npm install
Когда я запускаю приложение с:, у node app.js
меня появляются следующие ошибки:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Как это исправить?
Ответы:
Вы запустили другой сервер, используя тот же порт, что и 8080.
Возможно, вы запустили
node app
другую оболочку. Пожалуйста, закройте ее и запустите снова.Вы можете проверить номер порта. доступно или не используется
В качестве альтернативы вы можете использовать lsof :
источник
rails server
...: |Мы получаем похожую ошибку, когда иногда запускаем наше экспресс-приложение. Мы должны следовать тому же в этом случае. Нам нужно проверить, работает ли он в любом терминале. Если вы хотите найти и уничтожить процесс, выполните следующие действия:
ИЛИ
Используйте одну команду, чтобы закрыть все запущенные процессы узла.
источник
ps aux | grep node | awk '{print $2}' | xargs kill -9
killall -r node
(в linux)Экземпляр, вероятно, все еще работает. Это исправит это.
Обновление: эта команда будет работать только на Linux / Ubuntu и Mac.
источник
Если вы работаете в Linux, эта проблема также может возникнуть, если Nodejs не запущен от имени пользователя root.
Изменить от этого:
К этому:
Просто случилось со мной, и ни одно из других предложений здесь не исправило это. К счастью, я вспомнил, что скрипт работал на днях при запуске от имени пользователя root. Надеюсь, это поможет кому-то!
Отказ от ответственности: это, вероятно, не лучшее решение для производственной среды. Запуск вашей службы от имени root может привести к появлению некоторых дыр в безопасности вашего сервера / приложения. В моем случае это было решение для местной службы, но я бы посоветовал другим потратить больше времени, пытаясь изолировать причину.
источник
Это потому, что порт, который вы используете для запуска скрипта, уже используется. Вы должны остановить все другие узлы, которые используют этот пост. для этого вы можете проверить все узлы по
ИЛИ только для использования процесса узла
ps -ef | grep node
Это даст вам список всех процессов узла с идентификаторомУбить весь процесс узла
Или для конкретного идентификатора
sudo kill -9 id
источник
Я исправил ошибку, изменив порт, который был
и изменился на:
источник
Порт, который пытается использовать Node, может уже использоваться другой программой. В моем случае это был ntop , который я недавно установил. Мне пришлось открыть http: // localhost: 3000 / в браузере, чтобы понять это. Другой способ найти процесс дан здесь .
источник
Если вы хотите использовать тот же номер порта, введите
kill %
терминал, который убивает текущий фоновый процесс и освобождает порт для дальнейшего использования.источник
это означает, что ваш файл работает сейчас. просто введите ниже код и попробуйте снова:
источник
Закройте все остальные серверы узлов, которые работают, даже если они находятся в других окнах терминала или работают на других портах. Это должно решить проблему.
источник
Если вы попытались убить все экземпляры узлов и другие службы, прослушивающие 3000 (по умолчанию используется для экспресс-настройки скелета), но безрезультатно, вам следует убедиться, что ваша среда не определяет «порт» как нечто неожиданное. В противном случае вы, вероятно, получите ту же ошибку. В файле app.js экспресс-скелета вы увидите строку 15:
источник
Чтобы это исправить, завершите или закройте сервер, на котором вы работаете. Если вы используете Eclipse IDE, следуйте этому,
Run> Debug
Щелкните правой кнопкой мыши запущенный процесс и нажмите « Завершить» .
источник
events.js: 183 throw er; // необработанное событие error
Я также получил такую же проблему и перепробовал много способов, но в конце концов получил это, это работает хорошо:
Обратитесь по этой ссылке для получения дополнительных разъяснений https://github.com/ionic-team/ionic-cli/issues/2922
источник
На самом деле клавиши Ctrl + C не освобождают порт, используемый процессом узла. Так что есть эта ошибка. Для решения этой проблемы использовался следующий фрагмент кода в server.js:
Это сработало для меня.
Вы также можете проверить другие решения, упомянутые в Graceful shutdown в NodeJS.
источник
Причина этой ошибки
Простое и быстрое решение
В ОС Linux, например, вы указали 3000 в качестве порта
lsof -i :3000
. Если какой-либо процесс уже запущен на порту 3000, вы увидите эту печать на консолиСкопируйте PID (идентификатор процесса) из вывода
Выполнить
sudo kill -9 16615
(вы должны поставить PID после -9)источник
В моем случае мне тоже пришлось бежать
vagrant reload
. Даже если на моей виртуальной машине не было процессов узла, на которых выполнялось мое экспресс-приложение, я все еще получал эту ошибку до перезагрузки бродячей коробки.источник
Остановите службу, которая использует этот порт.
источник
В моем случае проблема была вызвана тем, что вы забыли вызвать вызов
next()
метода `use 'в expressjs.http://expressjs.com/guide/using-middleware.html
источник
Это сработало для меня.
http://www.codingdefined.com/2015/09/how-to-solve-nodejs-error-listen.html
Просто измените номер порта из свойств проекта.
источник
Вы также можете изменить порт из Gruntfile.js и запустить снова.
источник
После многократного уничтожения одного и того же процесса и невозможности определить, что еще было запущено на порту 8000, я понял, что пытался запустить порт 8000 дважды:
Перед:
После:
источник
У меня была та же проблема, и я узнал, что процесс nodejs, который я ранее отменил с помощью CTRL + C, все еще работает. Проблема в Windows 10 заключается в том, что Ctrl + C не убивает изящно nodejs. Я открыл диспетчер задач и убил процесс вручную. Решения, представленные на GitHub, не сработали для меня.
источник
Если вы используете Windows, то вы можете завершить процесс из диспетчера задач для node.js
источник
Ни один из ответов не сработал для меня.
Когда я перезагружал свой компьютер, я мог запустить и запустить сервер.
макинтош
shutdown now -r
Linux
sudo shutdown now -r
источник
-> проверьте, что работает на порте 8080 или на каком порте вы хотите проверить
если что-то работает, вы можете закрыть его или использовать команду kill, чтобы закрыть его
источник
Просто проверьте свой объект в коде Visual Studio. Поскольку я запускал свое приложение для узлов и я переводил компьютер в спящий режим, то на следующее утро я снова включил свой ноутбук в разработку программного обеспечения. Затем я снова запускаю команду nodemon app.js. Первый процесс запускался ночью, а второй выполнял мою последнюю команду, поэтому две командные строки прослушивают одни и те же порты, поэтому вы получаете эту проблему. Просто закройте один терминал или все терминалы, затем запустите ваш узел app.js или nodemon app.js.
источник
Порт, который вы слушаете, уже прослушивается другим процессом.
Когда я столкнулся с этой ошибкой, я убил процесс с помощью Windows PowerShell (потому что я использовал Windows)
ps
а затем вы можете получить список процессовStop-process <Id>
я думаю что это помощь для пользователей windowsисточник
Я столкнулся с той же проблемой сегодня, и порт не использовался. Помог следующий подход:
источник
Если это в Mac, то все дело в IP x86_64-apple-darwin13.4.0. Если вы следите за ошибками, это будет что-то, связанное с x86_64-apple-darwin13.4.0. Добавить
127.0.0.1 x86_64-apple-darwin13.4.0
в файл / etc / hosts . Тогда проблема ушла
источник
Просто измените ваш порт, возможно, ваш текущий порт используется iis или другим сервером.
источник