繁体   English   中英

在node.js服务器中使用https读取同步文件

[英]Synchronous file read with https in node.js server

我已经看到一些示例,我们可以使用以下代码创建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吗? 在读取密钥和证书之前,它会延迟每个用户的请求吗? 对此上下文的同步和异步有点困惑。

创建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);

将收到一个请求,并且在阻塞操作完成之前服务器将不接受任何请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM