Qu'est-ce que Readline
Readline est un module packagé dans Node.js qui implémente une entrée et une sortie standard. Grâce à ce module, nous pouvons lire le flux de données ligne par ligne. Les modules peuvent être référencés à l'aide de require("readline").
Comment utiliser Readline
Du point de vue de l'utilisation, pour apprendre Readline, nous devons apprendre ses trois parties :
Créer une instance Readline
Apprenez les méthodes d'interface à l'intérieur
Apprenez à surveiller et à gérer les événements Readline
Apprenons ces trois parties à travers des exemples.
Exemple 1 : Je m'appelle Xiao Ming
Le code est le suivant :
/** * Created by Administrator on 2015/9/10. */ // 引入readline模块 var readline = require('readline'); //创建readline接口实例 var rl = readline.createInterface({ input:process.stdin, output:process.stdout }); // question方法 rl.question("你叫什么?",function(answer){ console.log("名字是:"+answer); // 不加close,则不会结束 rl.close(); }); // close事件监听 rl.on("close", function(){ // 结束程序 process.exit(0); });
L'exemple ci-dessus utilise les trois parties que nous devons apprendre. Tout d'abord, utiliser createInterface crée une instance d'interface, puis utilise la méthode question pour demander le nom et enfin écoute l'événement close de readline, car le nom de la méthode et le nom de la surveillance des événements sont relativement intuitifs et leurs fonctions peuvent également être compris d'un coup d'œil. Je ne ferai que noter trois points :
Dans createInterface, nous devons transmettre l'entrée et la sortie standard en tant que flux de données d'entrée et de sortie
Dans la fonction de rappel de la méthode question, nous pouvons obtenir la saisie de l'utilisateur et la traiter en même temps, nous effectuons une opération de fermeture pour terminer le programme, sinon le programme ne se terminera pas
/** * Created by Administrator on 2015/9/10. */ // 引入readline模块 var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function(line){ switch(line.trim()) { case 'copy': console.log("复制"); break; case 'hello': rl.write("Write"); console.log('world!'); break; case 'close': rl.close(); break; default: console.log('没有找到命令!'); break; } }); rl.on('close', function() { console.log('bye bye'); process.exit(0); });
var readline = require('readline'); var rl = readline.createInterface(process.stdin, process.stdout); 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); });