Javascript 读取并阻止node.js中的标准输入
如何让node.js应用程序暂停/阻塞,在运行其余代码之前等待Javascript 读取并阻止node.js中的标准输入,javascript,node.js,Javascript,Node.js,如何让node.js应用程序暂停/阻塞,在运行其余代码之前等待stdin?我有: var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var ECRYPTION_KEY; rl.question('Provide the global encryption key:', function(
stdin
?我有:
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var ECRYPTION_KEY;
rl.question('Provide the global encryption key:', function(encyrptionKey) {
ECRYPTION_KEY = encyrptionKey;
rl.close();
});
var https = require('https');
https.createServer({ ... });
console.log("https server running...");
现在,我看到
立即提供全局加密密钥:
并且https服务器正在运行..
。也就是说,在创建https
服务器之前,不会阻止并等待stdin
。服务器是在从rl
回调接收加密密钥之前创建的。您不能这样做。曾经js被设计成在没有阻塞的情况下一直运行,而等待stdin做一些事情是一种误用
PS:事实上你可以(用纤维),但这不是使用它们的好理由
adeneo的建议是正确的,只需将createServer函数放在回调函数中。将
createServer
函数放在question()函数的回调函数中。
函数