如何让我们的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...");
现在,我立即看到Provide the global encryption key:
和https server running..
。 I.E.在创建stdin
服务器之前,不会阻止并等待https
。
答案 0 :(得分:1)
在从rl
回调收到加密密钥之前,正在创建服务器。
答案 1 :(得分:0)
你做不到。永远。 Node.js被设计为一直运行而不会阻塞,等待stdin做某事是一种误用。
PS:实际上你可以(带纤维),但这不是一个很好的理由使用它们。
adeneo的建议是正确的,只需将createServer函数放入回调中。