node.js dos界面 命令程序
什么是cli命令
类似于我们平时装win系统时,进入到一个dos界面让我们选择相应的操作,或者输入相应的光标之后安回车之后就开始执行操作。

类似于这样的就是cli命令。
//run.js var fs = require('fs'); var stdin = process.stdin; var stdout = process.stdout; var curDir = process.cwd(); function getDirectoryData(dir){ fs.readdir(dir,function(err,files){ console.log(""); if(!files.length){ return console.log(' \0333[31m No files to show! \033[39m\n'); } console.log(' Select which file or directory you want to see! \n'); function file(i){ var filename = files[i]; var statFile = fs.statSync(__dirname + '/' + filename); if(statFile.isDirectory()){ console.log(' '+ ++i + ' \033[31m' + filename + '/\033[39m'); }else{ console.log(' '+ ++i + ' \033[90m' + filename + '\033[39m'); } if( i == files.length){ read(); }else{ file(i); } } file(0); function read(){ console.log(''); stdout.write(' \033[33m Enter your choice: \033[39m'); stdin.resume(); stdin.setEncoding('utf8'); stdin.on('data',option); } function option(data){ var filename = files[Number(data)-1]; if(fs.statSync(__dirname + '/' + filename).isDirectory()){ stdin.pause(); fs.readdir(__dirname + '/' +filename,function(err,files){ console.log(''); console.log(' (' + files.length + ' files)'); files.forEach(function(file){ console.log(' -- ' + file); }); console.log(''); }) }else{ stdin.pause(); fs.readFile(__dirname + '/' +filename,'utf8',function(err,data){ console.log(''); console.log('\033[90m' + data.replace(/(.*)/g,' $1') + '\033[39m'); }); } } }); } getDirectoryData(curDir);
http://blog.163.com/hule_sky/blog/static/2091622452016621103745136/