我希望看看Node.js是否能够在遇到process.stdin块时暂停脚本以获取命令行应用程序的用户输入,类似于 prompt()在浏览器中使用JS或获取如何在Ruby中工作。
var response = '';
console.log("What's your favorite color?");
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (text) {
response = text;
process.exit();
});
console.log(`Cool! So ${response} is your favorite color? Mine is black.`);
在上面的简单脚本中,我希望看到
What's your favorite color?
*pause for user input ===>* Red
Cool! So Red is your favorite color? Mine is black.
暂停脚本,直到我输入内容并按Enter键继续运行。相反,我看到了
What's your favorite color?
Cool! So is your favorite color? Mine is black.
立即打印出来然后接受我的用户输入。
我知道还有其他模块,如 readline 和提示,可以简化节点的用户输入。对于这个问题,我特别想看看Node.js是否提供此功能而无需安装额外的软件包(process.stdin是首先想到的),尽管知道是否有任何模块会有所帮助也提供这种功能。
答案 0 :(得分:0)
在继续编写脚本之前等待stdin
var response = '';
console.log("What's your favorite color?");
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (text) {
response = text;
console.log(`Cool! So ${response} is your favorite color? Mine is black.`);
process.exit();
});
答案 1 :(得分:0)
您可以使用readline-sync。
var rl = require('readline-sync');
var response = '';
response = rl.question("What's your favorite color?");
console.log(`Cool! So ${response} is your favorite color? Mine is black.`);