2016-08-10 readline

nodejs readline模块

什么是readline

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

如何使用readline

  • 创建readline实例
  • 学习里面的接口方法
  • 学习监听与处理Readline事件

  1. 方法setPromat(promat),就是给每一行设置一个提示符

  2. promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据,premat方法就是在等待用户输入数据

  3. 这里又监听了’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' }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,066评论 6 13
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,546评论 0 6
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 28,596评论 5 20
  • 波兰诗人米沃什在诗《礼物》中这样写道:这世上没有一样东西我想占有。我知道没有一个人值得我羡慕。这让我直接会想...
    周蒙阅读 2,854评论 0 1
  • 上午到了公司立马开始和深圳要照片。从昨天下午四点拖到今天十点又拖到十点半。虽然他十点三十一发的,我还是没给他上。迟...
    Sanity娜娜阅读 1,130评论 0 1

友情链接更多精彩内容