nodejs не может разрешить "localhost" в windows

следующий код создает исключение в узле.js под windows:

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

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

вот сообщение:

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

когда я удалить localhost, он работает нормально. Что могло быть причиной этого? Я попытался отключить брандмауэр, но безрезультатно.

3 ответов


узел.js использует C-Ares resolver и полностью игнорирует системный резольвер. Так что советы относительно 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 Loopback Adaptor исправило эту проблему.

  1. щелкните шар меню Пуск. В поле поиска введите hdwwiz и нажмите кнопку hdwwize.ссылка на программу exe.
  2. Теперь мастер добавления оборудования должен быть открыт.
  3. прокрутите список вниз и выберите Сетевые адаптеры, затем нажмите кнопку Далее.
  4. дайте следующему окну время для загрузки, а затем нажмите Microsoft и выберите Microsoft Loopback Adapter.

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


Вариант 1: Не используйте windows;)

2: в C:\WINDOWS\system32\drivers\etc\hosts

добавить :

 127.0.0.1       localhost