下面的代码在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环回适配器修复此问题。
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