nodejs无法在Windows上parsing“localhost”

下面的代码在windows下的node.js中产生一个exception:

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

这里是消息:

  events.js:2083: Uncaught Error: getHostByName ENOTFOUND 

当我删除localhost ,它工作正常。 什么可能导致这个? 我尝试closures防火墙,但没有任何效果。

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

在我的情况下,添加Microsoft环回适配器修复此问题。

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

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

选项1:不要使用窗户;)

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

加:

  127.0.0.1 localhost