2012-05-27 3 views
0

나는 익스프레스와 노드 내부에 대해 더 많은 것을 이해하려고 노력하고있다. 표현 'response.js 파일을보고, 그것은 종종 프로토 타입 인 것 같다 res, 몇 가지 방법을 할당합니다.토끼 구멍을 내리십시오 - "입술"은 속달 및/또는 노드에서 어디서 유래 한 것입니까?

특히, resres = http.ServerResponse.prototype으로 선언됩니다.

자, 그럼 http은 무엇입니까? httphttp = require('http')으로 선언됩니다.

그래서 특급 'http.js 파일을 보면

, 우리는 exports = module.exports = HTTPServer;

HTTPServer이 방법 것 같다 참조 :

function HTTPServer(middleware){ 
    connect.HTTPServer.call(this, []); 
    this.init(middleware); 
}; 

내가 박히 곳이다. 내 논리에 따르면 이 HTTPServer 메서드에서 호출되는 것 같습니다. 물론 이는 의미가 없습니다. 그러므로 나는 뭔가를 놓치고 있어야합니다.

는 UPDATE :

난 그냥 표현이 HTTP 서버의 인스턴스를 생성 것을 깨달았다 :

exports.createServer = function(options){ 
    if ('object' == typeof options) { 
    return new HTTPSServer(options, Array.prototype.slice.call(arguments, 1)); 
    } else { 
    return new HTTPServer(Array.prototype.slice.call(arguments)); 
    } 
}; 

그래서 나는 그것이 ServerResponse 실제로 해당 인스턴스에 호출되는되는 경우 같은데요? 하지만 여전히 찾을 수 없습니다. ServerResponse ...

+0

HTTP는 노드 모듈입니다. – Mustafa

답변

2

express source files에 http.js 파일이 없습니다.

에 따르면 node.js documentation on httphttp = require('http')ServerResponse object이있는 http 모듈을로드합니다.

익스프레스 코드는 추가 메소드를 사용하여 ServerResponse 객체를 향상시킵니다.

+0

아하 네가 맞아 ... 잊지 마라 왜냐하면'require ('./ http')'기본 모듈을로드하기 때문이다 ... duhh – user730569

+0

내 응용 프로그램은 익스프레스 폴더에 http.js가 있지만 ... 이상한 – user730569