控制台输入

var nodeCmd = require('node-cmd');
class consoleLog{
    
    
    tableObj={
    
    
        A: {
    
    no:"1",name:"LinWit"},
        B: {
    
    no:"2",name:"zhangsan"},
        C: {
    
    no:"3",name:"lisi"}};
    constructor(){
    
    
        this.logReadline();
    }
    /**
     * 用readline模块模拟控制台读取用户输入
     * @param {Object|Array} tableObj 输出内容对象或数组
     * @param {String[]} nameArr 指定输出列
     */
    logReadline(){
    
    
        const readline = require('readline');
        const rl = readline.createInterface({
    
      //初始化rl对象
            input:process.stdin,
            output:process.stdout
        });

        rl.setPrompt("> ");  //定义模拟控制台命令提示符,调用时将写入 output 的提示。
        rl.prompt();   //初始化模拟控制台,开启 input 流
        rl.on('line',line=>{
    
      //激活readline模块的line事件,单行数据的读取输出
            switch(line.trim()){
    
        //trim()为去除前后空白字符
                case 'logTable'://在控制台输出表格
                console.log("logTable 输出开始...");
                let logTable=this.logTable(this.tableObj);
                console.log(logTable==='logEnd'?'logTable 输出结束...':'出现未知错误');
                break;
                
                case 'code':
                console.log("Node.js");
                break;
                
                case 'year':
                console.log(2022);
                break;
                
                default:
                console.log(line.trim()+" :输入未识别!");
                break;
            }
            rl.prompt();  //用于保持在接收完一次输出后,继续模拟控制台命令行
        }).on('close',function(){
    
        //激活readline模块的close事件,进程结束时触发事件
            console.log('###### 对话框 结束 ######');
            process.exit(0);  //退出进程
        }).on('pause',()=>{
    
       //激活readline模块的pause事件,输出流暂停时触发事件
            console.log("###### 对话框 暂停 ######");
        })
    }
    /**
     * 在控制台输出表格
     * @param {Object|Array} tableObj 输出内容对象或数组
     * @param {String[]} nameArr 指定输出列
     */
    logTable(tableObj,nameArr){
    
    
        if(nameArr&&nameArr.length>0){
    
    console.table(tableObj,nameArr)}
        else console.table(tableObj);
        return 'logEnd';
    }
}
new consoleLog();

猜你喜欢

转载自blog.csdn.net/u010100877/article/details/125876240