0

Express と Nodejs の内部構造をもっと理解しようとしています。express のファイルを見ると、プロトタイプのように見える にresponse.jsいくつかのメソッドを頻繁に割り当てています。res

具体的にresは、 として宣言されていres = http.ServerResponse.prototypeます。

わかりました、それで何httpですか?httpとして宣言されていhttp = require('http')ます。

Express'http.jsファイルを見ると、exports = module.exports = HTTPServer;

そして、HTTPServerこの方法のようです:

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

そして、これは私が立ち往生するところです。私の論理によればServerResponse、メソッドで呼び出されているように見えHTTPServerますが、もちろん意味がありません。したがって、私は何かが欠けているに違いありません。

アップデート:

Express が HTTPServer のインスタンスを作成することに気付きました。

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...

4

1 に答える 1

2

高速ソース ファイルに http.js ファイルが表示されません。

node.js のドキュメントに よると、http はオブジェクトhttp = require('http')を持つ http モジュールをロードします。ServerResponse

そのため、高速コードは、追加のメソッドを使用して ServerResponse オブジェクトを拡張します。

于 2012-05-27T20:55:21.770 に答える