nodejs无法解析Windows上的“localhost”

时间:2011-08-09 14:05:32

标签: windows sockets node.js localhost gethostbyname

以下代码在windows:

下的node.js中产生异常
var Socket = require("net").Socket;

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

这是消息:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

当我删除localhost时,它可以正常工作。可能是什么导致了这个? 我试过关闭防火墙,但没效果。

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

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

  1. 单击“开始”菜单“Orb”。在搜索框中键入hdwwiz,然后单击hdwwize.exe程序链接。
  2. 现在应该打开添加硬件向导。
  3. 向下滚动列表并选择“网络适配器”,然后单击“下一步”。
  4. 让下一个窗口加载,然后单击Microsoft并选择Microsoft Loopback Adapter。
  5. 来自:http://www.groovypost.com/howto/microsoft/install-a-loopback-adapter-in-windows-7/

答案 2 :(得分:-1)

选项1:不要'使用窗口;)

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

添加:

 127.0.0.1       localhost