Node.js无法在Windows上解析'localhost'

问题描述

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。如果没有,并且没有对本地主机的内置支持,那么您将不得不使用127.0.0.1

解决方法

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

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

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

这是消息:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

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