2013-01-22 12 views
23

Ho creato un server Web Node.js sul mio computer, utilizzando il noto esempio http-web-server-esempio di Node.js :Node.js su MAC: accesso a un server Web Node.js da un altro computer

var http = require('http'); 

http.createServer(function(req, res){ 
    res.writeHead(200, {'content-type': 'text/plain'}); 
    res.end('It works'); 
}).listen(3000, '127.0.0.1'); 

Questo funziona (come previsto) sul computer che esegue il server.

Vorrei accedere al server da un altro computer, nella stessa LAN. Utilizzando ifconfig sul terminale del computer che esegue il server (Apple MacOSX), ottengo: 192.168.0.6.

Quindi, a mio altro calcolatore, ho aperto il mio browser e collegato al http://192.168.0.6:3000, ma ottengo:

Oops! Google Chrome could not connect to 192.168.0.6:3000 

Il mio obiettivo finale, è quello di essere in grado di connettersi al server utilizzando il mio smartphone.

Qualsiasi aiuto sarebbe benvenuto. Non esitate a chiedere ulteriori dettagli se necessario.

Grazie in anticipo :)

risposta

35

127.0.0.1 è solo l'interfaccia locale. Prova ad iniziare ad ascoltare tutte le interfacce:

var http = require('http'); 

http.createServer(function(req, res){ 
    res.writeHead(200, {'content-type': 'text/plain'}); 
    res.end('It works'); 
}).listen(3000, '0.0.0.0'); 
+1

Wow! Grazie mille Vadim, funziona (anche nel mio smartphone). Puoi fornire maggiori dettagli (se possibile)? – htaidirt

+5

La vostra macchina ha diverse interfacce di rete. Puoi vederlo tutto eseguendo il comando 'ifconfig'. Impostando '127.0.0.1' si associa il server node.js solo all'interfaccia di loopback. Questa interfaccia è accessibile solo dalla macchina in cui è in esecuzione. '0.0.0.0' è un alias per tutte le interfacce disponibili. Inoltre puoi collegare il tuo server a un'altra interfaccia selezionata come '192.168.0.6', ma in questo caso non dovrebbe essere accessibile da' http: //127.0.0.1: 3000'. –

+0

Grazie, Vadim. Ora sottolineo di più come funziona. Infatti, quando lego il server a '192.168.0.6', funziona quando si accede a questo indirizzo, ma non al' localhost'. Grazie ancora. – htaidirt