2012-05-24 2 views
7

아래 127.0.0.1을 생략하면 app.address()가 null이 아니지만 호스트가 설정되면 null입니다.app.listen (PORT, HOST)에 HOST가 설정된 경우 app.address()가 null입니다.

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); 

오류 출력 : TypeError: Cannot read property 'port' of null

노드 v0.6.5

내가 익스프레스 버전 2.5.9을 설치 - 그것의 내가 설치 한 것을 반환 2.5.8 - 그 무엇에 관한 것인지 확실하지.

답변

4

app.address()가 Node의 HTTP 모듈에서 상속 되었기 때문에. 당신이 documentation에 보면이 글을 다음 운영 체제에서보고

은 서버의 바운드 주소와 포트를 돌려줍니다.

그러므로 IP로 포트를 요청하면 OS가 다시보고하지 않으므로이 메소드는 null을 반환합니다. 그러나 모든 컴퓨터가 "localhost"일 필요는 없으므로 컴퓨터의 IP 또는 주소가 필요할 수도 있습니다. 다른 도메인을 사용하면 소켓을 해당 도메인에만 바인딩 할 수 있습니다.

관련 문제