Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 读取并阻止node.js中的标准输入_Javascript_Node.js - Fatal编程技术网

Javascript 读取并阻止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(

如何让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(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()函数的回调函数中。
函数