Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NodeJS - Error: listen EADDRNOTAVAIL: address not available

Tags:

node.js

lan

I am running a Node app that should be hosted on a local server. At the moment, I am sending just a plaintext response.

const http = require('http');

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

When I listen to the localhost everything works fine and I am able to send the request from my browser.

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

However, if I try to listen to a port on my LAN network by typing the router's IP, I get an error.

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)

I have tried this with my public IP address unsuccessfully. Is there any way to listen to a port on a LAN server so that I can send requests from any computer on the network?
Also, I would later like my application to run on any computer on any LAN network. How can I dynamically add my host?

like image 913
Nikola Avatar asked Apr 07 '20 18:04

Nikola


2 Answers

Try this

server.listen(3000, '0.0.0.0');

you can access your node application from other machine

e.g

your lan ip is 192.168.0.101 then you can browse 192.168.0.101:3000 from other machine

like image 75
Shubham Avatar answered Sep 24 '22 15:09

Shubham


I got this error, the issue was I had a VPN connected

like image 33
Rene Ricardo Avatar answered Sep 22 '22 15:09

Rene Ricardo