Javascript 在node.js服务器中使用https同步读取文件
我看到了一些示例,其中我们可以使用以下代码创建Node.js HTTPS服务器:Javascript 在node.js服务器中使用https同步读取文件,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我看到了一些示例,其中我们可以使用以下代码创建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?它是否会延迟每个用户的请求
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请求处理程序中观察如何处理事情,HTTP请求处理程序是服务器每次接收请求时运行的函数。如果要这样阻止服务器,请执行以下操作:
https.createServer(function(req, res) {
// block the thread with something synchronous
res.end();
}).listen(443);
将收到一个请求,并且在阻止操作完成之前,服务器不会接受任何请求。您好,谢谢您的回复。那么,当我们启动服务器时,createserver的部分只执行一次?然后,客户机的另一个请求没有通过该部分,只是进入路由?例如,在express server中,我们可以读取任何同步文件,例如配置文件。我们所需要注意的阻塞代码都是内部路由?例如:
app.get('/',函数(req,res){//here?})代码>是,内部路由和中间件。这样的设置只执行一次。这有点像require()
,它是同步的,但只需要运行一次。哇,我完全误解了这里的逻辑,非常感谢。感觉noob:D