Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

nodejs cannot resolve 'localhost' on windows

The following code produces an exception in node.js under windows:

var Socket = require("net").Socket;

socket = new Socket();
socket.connect(80, "localhost");

here's the message:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

When I remove localhost, it works fine. What could be causing this? I tried turning the firewall off, but to no effect.

like image 805
Corno Avatar asked Aug 09 '11 14:08

Corno


1 Answers

node.js uses c-ares resolver and ignores system resolver completely. So the advices regarding C:\WINDOWS\system32\drivers\etc\hosts are probably irrelevant.

c-ares library reads certain system config files - e.g. on Windows and Cygwin it reads /etc/resolv.conf. So you should check if it reads /etc/hosts or C:\WINDOWS\system32\drivers\etc\hosts. If it doesn't and doesn't have builtin support for localhost - then you will have to use 127.0.0.1

like image 140
nponeccop Avatar answered Sep 18 '22 13:09

nponeccop