nodejs не может разрешить localhost в windows - PullRequest
6 голосов
/ 09 августа 2011

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

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

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

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

    events.js:2083: Uncaught Error: getHostByName ENOTFOUND

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

Ответы [ 3 ]

9 голосов
/ 10 августа 2011

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

4 голосов
/ 09 июня 2016

В моем случае добавление Microsoft Loopback Adapter устранило эту проблему.

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

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

0 голосов
/ 09 августа 2011

Вариант 1: не использовать окна;)

Вариант 2: в C: \ WINDOWS \ system32 \ drivers \ etc \ hosts

добавить:

 127.0.0.1       localhost
...