全站工程师 05 笔记

node.js 的 I/O交互

I/O 是什么?
I 是input (要监听的可读流) .,O是output(要写入 readline 的可写流),读入读出 交互
IO 是输入输出, 文件算, 网络算, 数据库算, 用户输入文本算
异步I/O介绍

终端交互使用步骤

  1. 引入 readline 模块
    var readline = require('readline'); //引入 readline 模块
  2. 创建接口,参数一 输入,参数二输出
    var rl = readline.createInterface({input: process.stdin,output: process.stdout});
  3. 设置提示
    rl.setPrompt('请输入:');
  4. 设置用户输入并监听
    rl.prompt();
    5.设置用户输入键盘事件
    rl.on('line',(line) => {
    //获取用户输入
    var str = line.trim();
    //判断用户输入没有
    if(str == 0){
    //打印信息
    console.log('欢迎下次再来!');
    //退出
    rl.close(); //也可以process.exit()
    }else{
    //把用输入的打印出来
    console.log('你输入的是:'+str);
    //输入监听
    rl.prompt();
    }
    })
  5. 程序写完效果是这样的:
    E:\全栈工程师\20160810>node io.js
    请输入:node.js是世界上最好的语言。
    你输入的是:node.js是世界上最好的语言。
    请输入:
    欢迎下次再来!

自定义模块编写和使用

在新的js文件中使用exports.模块名来定义模块

  1. 先创建一个js文件编辑:
    //方式一
    exports.test = function(){
    console.log('调用test模块');
    }
    //方式二
    var func = function(){
    console.log('这是一个函数');
    }

     exports.f = func;
    
  2. 在任何js文件中调用此模块
    //先引入模块
    var m = require('绝对路径+文件名');
    //使用
    m.test();
    m.func();


web交互使用

使用到了querystring模块,它是用来处理字节流的

  1. 引入querystring 模块
    var qs = require('querystring');

  2. request对象添加监听,对提交的数据进行处理

     request.addListener('data', (postdata) => { 
       //打印postdata 
         console.log(postdata); 
         var a = ''; a += postdata; 
         var b = qs.parse(a); 
       //打印postdata转换后的数据 
         console.log(b);
     });
    

querystring.stringify
将一个对象序列化为一个查询字符串,可选择是否覆盖默认的分隔符和赋值符。

实例:
querystring.stringify({foo: 'bar'})
//returns
'foo=bar'querystring.stringify({foo: 'bar', baz: 'bob'}, ';', ':')
// returns'foo:bar;baz:bob'
querystring.parse
将一个查询字符串反序列化为一个对象,可选择是否覆盖默认的分隔符和赋值符。
实例:
querystring.parse('a=b&b=c');
// returns{ a: 'b', b: 'c' }

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

相关阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 7,241评论 1 37
  • 实现io简单的交换 var readline = require('readline')//变量 读取一个 ...
    zy01阅读 2,224评论 0 0
  • 复习 静态服务器的搭建 url地址的获取 根据url地址显示不同模板 本次内容--ReadLine Readlin...
    ZGKzm阅读 1,630评论 0 0
  • 模块 Node 有简单的模块加载系统。在 Node 里,文件和模块是一一对应的。下面例子里,foo.js加载同一个...
    保川阅读 3,751评论 0 0
  • 第一部分 终端交互 使用到了readline模块,在终端进行io操作; 这个模块是nodejs自带的 使用步骤: ...
    霄峰阅读 1,850评论 0 0

友情链接更多精彩内容