玉貔貅

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

内容来源: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!

 

posted on 2019-01-25 15:11  玉貔貅  阅读(807)  评论(0编辑  收藏  举报