曲振飞的个人博客

专注于Web全栈开发、APP设计、网站建设

当前位置 : 主页 > 后端开发 > Readline模块实现终端和浏览器之间的I/O交互

Readline模块实现终端和浏览器之间的I/O交互

时间:2016-10-27 11:56:51 栏目:后端开发 作者:曲振飞 点击: 262

Readline简介:

Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require(“readline”)可以引用模块。

Readline使用:

ReadLine的使用我们要从以下3部分来学习使用

    1.创建Readline实例

    2.学习里面的接口方法

    3.学习监听与处理Readline事件

通过下面小例子来介绍:

var readline = require("readline");
var rl = readline.createInterface(process.stdin,process.stdout);
rl.setPrompt("Please enter your favorite fruit:");
rl.prompt();
function demo(){
    rl.question("what's you name ? ",function(answer){
        if(answer == ""){
        	console.log('The name cannot be empty.Please re-enter: ');
          	demo();
        }else{
            console.log("Welcome to " + answer + "!");
            rl.prompt();
            rl.on("line",(line) => {
	            switch(line.trim()){
	                case "apple":
	                   console.log("this is apple");
	                    break;
	                case "banana":
	                    console.log("this is banana");
	                    break;
	                case "bye":
	                    console.log("bye Bye! Looking forward to your next visit!");
	                    process.exit(0);
	                    break;
	                default:
	                    console.log("Did not find your input!");
	            }
	            rl.prompt();
	        });
        }
    });
}
demo();
rl.on("close",function(){
    console.log("bye Bye!");
});

首先引入readline模块

在readline.createInterface(process.stdin,peocess.stdout)方法里,我们传入标准的输入输出作为数据的输入输出流。

方法setPromat(promat),是给每一行设置一个提示符,就好比window命令行的>

promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据

执行rl.promat()方法就是在等待用户输入数据

在question()方法的回调函数,我们可以获取用户输入的内容,进行处理

在‘line’事件里,这个事件就是在用户输完一行,按下回车后就会触发的事件,它会将用户输入的数据通过回调函数传回来,可在此方法里处理用户输入的数据

line.trim()方法可以获取我们输入的内容

在close事件的监听里,我们执行了process.exit(0)来使程序退出的操作,因为readline模块只要一开始获取用户输入就不会结束,必须使用这种直接的方式来结束程序.

运行结果图:

blob.png

关键字:

关于站长

曲振飞,一个热忠、从事于互联网的90后青年.专注于网站建站、网站设计及优化.以用户体验、WEB标准为主旨,将网站的整体设计与网页设计的相关原理紧密结合.