2017-08-26 2 views
0

Étant donné que je possède déjà un serveur et en cours d'exécution sur localhost (voir plus bas pour un exemple), à ​​une ligne de commande de noeud en ligne, je reçois le texte suivant:Pourquoi la requête NodeJS() échoue-t-elle sur localhost en mode vol, mais pas sur 127.0.0.1? (Windows 10)

> var x = request('http://localhost:8080/test.html', 
...    function(err) { if (err) console.log(err) }) 
undefined 
> 

Je me attends pour obtenir le résultat ci-dessus tout le temps.

Si je suis passé en mode de vol, je reçois le texte suivant:

> var x = request('http://localhost:8080/test.html', 
...    function(err) { if (err) console.log(err) }) 
undefined 
> { Error: getaddrinfo ENOENT localhost:8080 
    at Object.exports._errnoException (util.js:1022:11) 
    at errnoException (dns.js:33:15) 
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) 
    code: 'ENOENT', 
    errno: 'ENOENT', 
    syscall: 'getaddrinfo', 
    hostname: 'localhost', 
    host: 'localhost', 
    port: '8080' } 

Essayer cette fois avec 127.0.0.1 au lieu de localhost fonctionne si oui ou non Je suis en mode de vol.

Question

Pourquoi localhost fonctionne pas? Je peux voir que c'est quelque chose à voir avec le résolveur DNS de Windows.

Configuration pour le code client ci-dessus

Vous devez installer le require premier:

C:\> npm install require 

Contexte général

Je l'ai fait bouillir cela à moi le plus simple possible . Voir Why does web-component-tester time out in flight mode? pour le contexte plus large.

Exemple serveur

La question ne concerne pas le serveur suivant spécifiquement, il est juste un exemple rapide. Je pense que tout serveur local le ferait probablement, pas seulement un serveur NodeJS. Le problème est dans le code client comme détaillé ci-dessus.

Configuration pour l'exemple serveur:

C:\> npm install connect serve-static 

server.js:

var connect = require('connect') 
var serveStatic = require('serve-static') 
connect().use(serveStatic(__dirname)).listen(8080) 

test.html:

<html>Really not important, but necessary for completeness</html> 

Démarrer le serveur:

C:\> node server.js 

Répondre