我试图理解更多的 Express 和 nodejs 内部 。 在 Express < code> response.js 文件中, 它经常为 < code> response.js 指定几种方法, 似乎是一个原型 。
具体而言, res
被宣布为 res = http.serverResponse.prototype
。
OK,那么,什么是 是被宣布为
。http
http = expected(http)
因此,在 http.js
文件中,我们可以看到 exports=模块.exports = HTTPServer;
HTTPServer
似乎就是这个方法:
function HTTPServer(middleware){
connect.HTTPServer.call(this, []);
this.init(middleware);
};
这就是我被困的地方。根据我的逻辑, 似乎 < code> ServerResponse 被调用到 < code> HTTPServer 方法上, 这当然不合理。 因此, 我一定漏掉了一些东西 。
更新:
我刚刚意识到 Express创造了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
...