2012-05-24 7 views
7

Cuando se omite 127.0.0.1 a continuación app.address() no es nulo, pero cuando se establece un host, es nulo.¿Cómo es que app.address() es nulo cuando HOST está configurado en app.listen (PORT, HOST);

var express = require('express'), 
    app = express.createServer(); 

app.use(express.logger()); 

app.get('/', function(req, res){ 
    res.send('Hello World'); 
}); 

app.listen(3000, '127.0.0.1'); 
console.log(app.address()); 
console.log('Express server started on port %s', app.address().port); 

de salida de error: TypeError: Cannot read property 'port' of null

v0.6.5 Nodo

He instalado la versión 2.5.9 expreso - su regreso que he instalado 2.5.8 - no está seguro de qué se trata.

Respuesta

4

Porque, app.address() se hereda del módulo HTTP de Node. Si se mira a la documentation allí escribe:

Devuelve la dirección de salto y el puerto del servidor según lo informado por el sistema operativo .

Por lo tanto, supongo que cuando solicita un puerto con una dirección IP, el sistema operativo no se lo informa a usted, por lo que este método devuelve nulo. Sin embargo, cuando no lo haga, es posible que necesite la dirección IP o de su computadora, ya que cada computadora no tiene que ser "localhost", pueden tener diferentes dominios que le permiten vincular únicamente los sockets a ese dominio.

Cuestiones relacionadas