NodeJS - Ошибка: прослушать EADDRNOTAVAIL: адрес не доступен - PullRequest
0 голосов
/ 07 апреля 2020

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

const http = require('http');

var server = http.createServer(function(req, res) {
  res.writeHead(200, {ContentType: 'text/plain'});
  res.end("test");
});

Когда я слушаю localhost, все работает нормально, и я могу отправить запрос из своего браузера.

server.listen(3000, '127.0.0.1'); // works fine, on the same machine

Однако, если я пытаюсь прослушать порт в сети LAN, введя IP-адрес маршрутизатора, я получаю сообщение об ошибке.

server.listen(3000, '192.168.0.1'); // causes an error
Error: listen EADDRNOTAVAIL: address not available 192.168.0.1:3
000
    at Server.setupListenHandle [as _listen2] (net.js:1253:19)
    at listenInCluster (net.js:1318:12)
    at doListen (net.js:1451:7)
    at process._tickCallback (internal/process/next_tick.js:63:1
9)
    at Function.Module.runMain (internal/modules/cjs/loader.js:7
57:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
    at emitErrorNT (net.js:1297:8)
    at process._tickCallback (internal/process/next_tick.js:63:1
9)
    [... lines matching original stack trace ...]
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

Я пытался это сделать с моим публичным c IP-адресом. безуспешно. Есть ли способ прослушивания порта на сервере локальной сети, чтобы я мог отправлять запросы с любого компьютера в сети? Кроме того, позже я бы хотел, чтобы мое приложение работало на любом компьютере в любой локальной сети. Как я могу динамически добавить свой хост?

Ответы [ 2 ]

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

Правильный IP-адрес фактически оказался 192.168.0.104

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

Попробуйте это

server.listen(3000, '0.0.0.0');

, вы можете получить доступ к приложению вашего узла с другого компьютера

например

тогда ваш IP-адрес 192.168.0.101 Вы можете просмотреть 192.168.0.101:3000 с другой машины

...