nodejs readline模块
什么是readline
Readline是Node.js里实现标准输入输出的封装好的模块,
通过这个模块我们可以以逐行的方式读取数据流。
使用require(“readline”)可以引用模块。
如何使用readline
- 创建readline实例
- 学习里面的接口方法
- 学习监听与处理Readline事件
方法setPromat(promat),就是给每一行设置一个提示符
promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据,premat方法就是在等待用户输入数据
这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果
代码示例
//引入readline模块
var readline = require('readline');
//创建readline接口实例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('请输入:');
rl.prompt();
//监听数据流
rl.on('line',(line)=>{
var str = line.trim(); //输入数据流
console.log('你输入的是:' + str);
});
//close事件监听
rl.on('close',function(){
//结束程序
console.log('bye bye');
});
//引入readline模块
var readline = require('readline');
//创建readline接口实例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('请输入:');
rl.prompt();
//监听数据流
rl.on('line',(line)=>{
var str = line.trim(); //输入数据流
// console.log('你输入的是:' + str);
if(str==0){
console.log('bye bye');
process.exit();
}else{
console.log('你输入的是:' + str);
rl.prompt();
}
});
//hello.js文件
exports.work = function(string){
console.log('现在是开会时间,不适合说笑 '+string);
}
function ww(){
console.log('this is working');
}
exports.w = ww;
//引入readline模块
var readline = require('readline');
var hello = require('./hello'); // 引入模块
//创建readline接口实例
var rl = readline.createInterface(process.stdin,process.stdout);
// Prompt方法
rl.setPrompt('请输入:');
rl.prompt();
//监听数据流
rl.on('line',(line)=>{
var str = line.trim(); //输入数据流
// console.log('你输入的是:' + str);
if(str==0){
console.log('bye bye');
process.exit();
}else{
console.log('你输入的是:' + str);
hello.work(str);
rl.prompt();
}
});
QueryString模块
QueryString 模块用于实现URL参数字符串与参数对象的互相转换
var url = require('url');
var qs = require('querystring');
var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
queryUrl = url.parse(queryUrl).query ;
console.log(queryUrl) ;
console.log(qs.parse(queryUrl)) ;
运行结果:
name=bigbear&memo=helloworld
{ name: 'bigbear', memo: 'helloworld' }