zoukankan      html  css  js  c++  java
  • Node.js的用户交互(使用readline模块)

    内容来源:https://www.jianshu.com/p/b761111eef72

    在程序运行时可以使用键盘对程序进行控制,就像使用shell界面一样

    Readline:node.js的里实现的标准输入输出的模块,这个模块提供的接口可以从一个可读的留中读取数据,每次读取一行

    简单例子:

    const readline = require('readline');
    
    //创建readline接口实例
    const rl = readline.createInterface({
        input: process.stdin, //设置标准的输入流
        output: process.stdout //设置标准输出流
    });
    
    // question方法
    rl.question('请输入: ', function(answer){
        console.log('你输入的内容是 {%s}', answer.toUpperCase());
        // 不加close,则不会结束
        rl.close();
    });

    输出:

    请输入: 1233
    你输入的内容是 {1233}

    另一个高级例子:

    var readline = require('readline');
    var  rl = readline.createInterface(process.stdin, process.stdout);
    
    /*
    *  方法setPromat(promat),就是给每一行设置一个提示符,就好比window命令行的> ,我们这里设置的是Test>
    *  promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据,premat方法就是在等待用户输入数据
    *  这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果
    */
    
    rl.setPrompt('Test> ');
    rl.prompt();
    
    rl.on('line', function(line) {
        switch(line.trim()) {
            case 'copy':
                console.log("复制");
                break;
            case 'hello':
                console.log('world!');
                break;
            case 'close':
                rl.close();
                break;
            default:
                console.log('没有找到命令!');
                break;
        }
        rl.prompt();
    });
    
    rl.on('close', function() {
        console.log('bye bye!');
        process.exit(0);
    });
    Test> copy
    复制
    Test> hello
    world!
    Test> world
    没有找到命令!
    Test> close
    bye bye!
    时光如白驹过隙,匆匆而已。
  • 相关阅读:
    组合算法实现
    Memcached 和 Redis 分布式锁方案
    CLR 内存分配和垃圾收集 GC
    Windbg 的使用和常用命令
    Geohash 算法学习
    经纬度计算
    Windbg 分析CPU上涨
    Windbg 分析内存上涨
    django基于存储在前端的token用户认证
    非常详细的Django使用Token(转)
  • 原文地址:https://www.cnblogs.com/yupixiu/p/10319755.html
Copyright © 2011-2022 走看看