美文网首页
全站工程师 05 笔记

全站工程师 05 笔记

作者: 景岳 | 来源:发表于2016-08-11 10:28 被阅读28次

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' }

相关文章

网友评论

      本文标题:全站工程师 05 笔记

      本文链接:https://www.haomeiwen.com/subject/qsojsttx.html