内容来源:https://www.jianshu.com/p/b761111eef72
在程序运行时可以使用键盘对程序进行控制,就像使用shell界面一样
Readline:node.js的里实现的标准输入输出的模块,这个模块提供的接口可以从一个可读的留中读取数据,每次读取一行
简单例子:
const readline = require('readline'); //创建readline接口实例 const rl = readline.createInterface({ input: process.stdin, //设置标准的输入流 output: process.stdout //设置标准输出流 }); // question方法 rl.question('请输入: ', function(answer){ console.log('你输入的内容是 {%s}', answer.toUpperCase()); // 不加close,则不会结束 rl.close(); });
输出:
请输入: 1233
你输入的内容是 {1233}
另一个高级例子:
var readline = require('readline'); var rl = readline.createInterface(process.stdin, process.stdout); /* * 方法setPromat(promat),就是给每一行设置一个提示符,就好比window命令行的> ,我们这里设置的是Test> * promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据,premat方法就是在等待用户输入数据 * 这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果 */ rl.setPrompt('Test> '); rl.prompt(); rl.on('line', function(line) { switch(line.trim()) { case 'copy': console.log("复制"); break; case 'hello': console.log('world!'); break; case 'close': rl.close(); break; default: console.log('没有找到命令!'); break; } rl.prompt(); }); rl.on('close', function() { console.log('bye bye!'); process.exit(0); });
Test> copy 复制 Test> hello world! Test> world 没有找到命令! Test> close bye bye!
时光如白驹过隙,匆匆而已。