0

I have set up vmware workstation, Ubuntu 16.06 desktop as my guest machines, windows 10 as host.

nodejs 9.4.0 express 4.16.2

and simple server HTTP and express:

const http = require('http'),
  PORT = 4000;

http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('It works!');
    res.end();
}).listen(PORT);

console.log("Listening on port " + PORT);

**/


/*** EXPRESS BASED TEST*/

const express = require('express');
const app = express();
PORT = 4000;

app.get('/', (req, res)=>{
    res.send("it works!");
})

app.listen(PORT, 'localhost', ()=>{
    console.log('Listening on port: ' + PORT)
});
/****/

What happens is, when I try to open test webpage from my host browser when guest runnin express - I get ERR_CONNECTION_REFUSED. BUT when i start simple http server - it connects! I tried to connect with telnet, ssh... turn of firewall... behavior is the same...

Is it something wrong with express? Is there a way to fix it?

1 Answers1

0

The solutions is here:

Node.js connect only works on localhost

In my express app I make it listen on localhost, which is 127.0.0.1 and which is loopback address. After changing it to 0.0.0.0 the problem was solved.