The following code produces an exception in node.js under windows:
var Socket = require("net").Socket;
socket = new Socket();
socket.connect(80, "localhost");
h开发者_运维技巧ere'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.
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
In my case adding the Microsoft Loopback Adaptor fixed this issue.
- Click the Start Menu Orb. In the search box Type hdwwiz and then Click the hdwwize.exe program link.
- Now the Add Hardware wizard should be open.
- Scroll down the list and Select Network Adapters then Click Next.
- Give the next window a moment to load, and then Click Microsoft and Select Microsoft Loopback Adapter.
From: http://www.groovypost.com/howto/microsoft/install-a-loopback-adapter-in-windows-7/
Option 1: Dont' use windows ;)
Option 2: in C:\WINDOWS\system32\drivers\etc\hosts
add :
127.0.0.1 localhost
精彩评论