6

以下代码在windows下的node.js中产生异常:

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

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

这是消息:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

当我删除localhost时,它工作正常。这可能是什么原因造成的?我尝试关闭防火墙,但没有任何效果。

4

3 回答 3

9

node.js 使用 c-ares 解析器并完全忽略系统解析器。所以关于 C:\WINDOWS\system32\drivers\etc\hosts 的建议可能是无关紧要的。

c-ares 库读取某些系统配置文件——例如在 Windows 和 Cygwin 上它读取 /etc/resolv.conf。所以你应该检查它是否读取 /etc/hosts 或 C:\WINDOWS\system32\drivers\etc\hosts。如果它没有并且没有对 localhost 的内置支持 - 那么您将不得不使用 127.0.0.1

于 2011-08-10T12:17:12.407 回答
4

在我的情况下,添加 Microsoft Loopback Adapter 解决了这个问题。

  1. 单击开始菜单球。在搜索框中键入 hdwwiz,然后单击 hdwwize.exe 程序链接。
  2. 现在应该打开添加硬件向导。
  3. 向下滚动列表并选择网络适配器,然后单击下一步。
  4. 等待下一个窗口加载,然后单击 Microsoft 并选择 Microsoft Loopback Adapter。

来自:http ://www.groovypost.com/howto/microsoft/install-a-loopback-adapter-in-windows-7/

于 2016-06-09T06:11:20.280 回答
-2

选项 1:不要使用 windows ;)

选项 2:在 C:\WINDOWS\system32\drivers\etc\hosts

添加 :

 127.0.0.1       localhost
于 2011-08-09T15:26:10.180 回答