1

以下のコードで Node.js HTTPS サーバーを作成できる例をいくつか見てきました。

var https = require('https');

https.createServer({
  key: fs.readFileSync('/path/to/something.key'),
  cert: fs.readFileSync('/path/to/something.crt'),
}, app).listen(443);

ここで使用する必要がありますreadFileSyncか? キーと証明書が読み取られるまで、各ユーザーの要求を遅らせますか? このコンテキストでの同期と非同期について少し混乱しています。

4

1 に答える 1

3

HTTP サーバー インスタンスを作成するときに同期読み取りを使用する必要はありません。同期読み取りを使用する方が便利であり、サーバー インスタンスの作成時にファイルを一度だけ読み取る必要があるだけです。

たとえば、次のようにすることもできますが、それを行うのは無意味であり、コードが読みにくくなります。

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

fs.readFile('/path/to/something.key', function(err, key) {
  fs.readFile('/path/to/something.cert', function(err, cert) {
    https.createServer({
      key: key,
      cert: cert
    }, app).listen(443);
  });
});

サーバーがリクエストを受信するたびに実行される関数である HTTP リクエスト ハンドラ内で、物事がどのように処理されるかを監視する必要があります。次のようにサーバーをブロックする場合:

https.createServer(function(req, res) {
  // block the thread with something synchronous
  res.end();
}).listen(443);

1 つの要求が受信され、サーバーはブロック操作が完了するまで要求を受け入れません。

于 2013-11-12T04:00:20.687 に答える