Javascript 如何从Node.js中的命令行中仅读取一行,类似于Python';s`input`或C++';s`std::getline`?
在Node中,似乎没有一种直接的方法可以轻松地从命令行获取一行 到目前为止,我找到了以下解决方案:Javascript 如何从Node.js中的命令行中仅读取一行,类似于Python';s`input`或C++';s`std::getline`?,javascript,node.js,input,command-line,Javascript,Node.js,Input,Command Line,在Node中,似乎没有一种直接的方法可以轻松地从命令行获取一行 到目前为止,我找到了以下解决方案: readline模块的打开('line',回调)[] readline的问题(q,回调)[] process.stdin.pipe(require('split')()).on('data',callback)[] fs.readFileSync(0).toString[] 但是,以上所有内容都远不如或C++那么直截了当。(此外,我无法使用选项(4)在Windows上工作。) readline方法
readline
模块的打开('line',回调)
[]readline
的问题(q,回调)
[]process.stdin.pipe(require('split')()).on('data',callback)
[]fs.readFileSync(0).toString
[]readline
方法可能是最好的,但它需要使用回调
这一事实令人沮丧。将专用readline
模块的功能包装在promises中可能仍然是最好的方法。这里我们模拟Python的input
和C++的getline
功能
注意,节点事件不仅有一个on
函数,还有一个函数
//input.js
const readline=require('readline');
const cmd=readline.createInterface({
输入:process.stdin,
输出:process.stdout
});
/**
*模拟Python的'input'函数。
*/
导出异步函数输入(提示){
返回新承诺(r=>cmd.question(prompt,r));
}
/**
*模拟C++的“getline”函数。
*/
导出异步函数getline(){
返回新承诺(r=>cmd.once('line',r));
}
//main.js
异步函数main(){
常数x=等待输入('x是什么?');
console.log('x is',x);
console.log('y是什么?');
const y=wait getline();
console.log('y is',y);
}
main();