У меня проблема с EADDRINUSE, но ничто не использует порт 3000. Как это возможно? - PullRequest
1 голос
/ 16 января 2020

Я следую инструкциям по nodejs и получаю сообщение об ошибке.

Это мой сервер. js файл:

const express = require("express");

const app = express();

app.listen("/", function(req, res){
  res.send("<h1>Hello, there!</h1>")
});

app.listen("/contact", function(req, res){
  res.send("Contact me at obiwankenobi@falcon.com")
});

app.listen(3000, function(){
  console.log("Server started on port 3000")
});

Это мой пакет. json файл:

{
  "name": "my-express-server",
  "version": "1.0.0",
  "description": "This is a project on how to start your own server.",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "Adam Marasli-Zaade",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

И когда я нажимаю: сервер узла . js, я получаю ошибку:


adam@Omen-hp:~/Desktop/Angela/my-express-server$ node server.js
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use /
    at Server.setupListenHandle [as _listen2] (net.js:1260:19)
    at listenInCluster (net.js:1325:12)
    at Server.listen (net.js:1423:5)
    at Function.listen (/home/adam/Desktop/Angela/my-express-server/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/adam/Desktop/Angela/my-express-server/server.js:5:5)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
Emitted 'error' event at:
    at emitErrorNT (net.js:1304:8)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

Информация о системе:

                          ./+o+-       adam@Omen-hp
                  yyyyy- -yyyyyy+      OS: Ubuntu 19.10 eoan
               ://+//////-yyyyyyo      Kernel: x86_64 Linux 5.3.0-26-generic
           .++ .:/++++++/-.+sss/`      Node Version: 10.15.2
         .:++o:  /++++++++/:--:/-      NPM Version: 6.13.6
        o:+o+:++.`..```.-/oo+++++/     Shell: bash 5.0.3
       .:+o:+o/.          `+sssoo+/    
  .++/+:+oo+o:`             /sssooo.   
 /+++//+:`oo+o               /::--:.   
 \+/+o+++`o++o               ++////.   
  .++.o+++oo+:`             /dddhhh.  
       .+.o+oo:.          `oddhhhh+    
        \+.++o+o``-````.:ohdhhhhh+     
         `:o+++ `ohhhhhhhhyo++os:      CPU: Intel Core i5-7300HQ @ 4x 3.5GHz
           .o:`.syhhhhhhh/.oo++o`      GPU: GeForce GTX 1050
               /osyyyyyyo++ooo+++/     
                   ````` +oo+++o\:    
                          `oo++.      

Я попытался перезагрузить систему, я попытался воссоздать проект, я попытался каждая команда, чтобы узнать, что использует порт: 3000 и убить его, проблема в том, что я не могу найти ничего, что использует его, я отключил атом-печень-сервер на случай, если это проблема, потому что он использует порт: 3000, я не Не знаю, что еще делать.

Спасибо, что уделили время.

Адам

Ответы [ 2 ]

1 голос
/ 16 января 2020

Ваша проблема в этом чанке:

app.listen("/", function(req, res){
  res.send("<h1>Hello, there!</h1>")
});

Вы пытаетесь прослушать путь к сокету. Я предполагаю, что вы хотите использовать app.get(...). То же самое для вашего /contact пути

Кратко рассмотрите документы express. js: https://expressjs.com/en/api.html#app .listen_path_callback

0 голосов
/ 16 января 2020

Из командной строки введите:

pkill -9 nod e

, затем запустите вашу прогу

для посмотрите активность порта для вашей машины:

sudo lsof -iTCP -sTCP: LISTEN -n -P

// или для ubunut попробуйте ниже

netstat -anp | grep apache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...