[英]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.