40
var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);
  1. createServer メソッドでwriteHeadandメソッドを呼び出す理由を誰か説明してもらえますか。end
  2. createServer メソッドで渡されるオプション オブジェクトの主な目的は何ですか。
4

5 に答える 5

45

と へのこれらの呼び出しは、メソッドwriteHeadではなく、コールバックでend行われます。createServer

コールバックを別の関数に分割すると、少し見やすくなります。

function handleRequest(req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}

https.createServer(options, handleRequest).listen(8000);

ここでhandleRequest関数を定義し、それをcreateServer呼び出しに渡します。これで、作成した node.js サーバーが受信リクエストを受け取るたびに、handleRequestメソッドが呼び出されます。

このパターンは JavaScript では非常に一般的であり、node.js の非同期イベント処理の中核です。

于 2013-01-09T17:40:00.897 に答える
4

response.writeHead(200)リクエストにレスポンス ヘッダーを送信します。ステータス コードは、404 のような 3 桁の HTTP ステータス コードです。

このメソッドは、メッセージに対して 1 回だけ呼び出す必要があり、response.end() を呼び出す前に呼び出す必要があります。

これを呼び出す前に response.write() または response.end() を呼び出すと、暗黙的/変更可能なヘッダーが計算され、この関数が呼び出されます。

于 2016-07-20T09:56:02.593 に答える