Node.js中readline模塊實現終端輸入
1 概述
readline是Node.js裡實現標準輸入輸出的封裝好的模塊,通過這個模塊我們可以以逐行的方式讀取數據流。使用require("readline")
可以引用模塊。
使用readline步驟:
1、引入:require('readline')
2、創建readline對象(接口)
3、調用接口的相關方法
4、監聽和處理readline事件
示例代碼:
// 引入readline模塊 const readline = require("readline"); // 創建readline接口實例 let r1 = readline.createInterface({ input: process.stdin, output: process.stdout }) //調用接口方法 r1.question("你叫什麼名字\t", function (answer) { console.log("我的名字是:", answer); // 不加close,則不會結束 r1.close(); }) //close事件監聽 r1.on("close", function () { // 結束程序 process.exit(0); })
2 readline的使用
第一步:createInterface創建瞭一個接口實例
第二步:調用相關方法,如question方法輸入
第三步:監聽readline的close事件
註意:
1、在createInterface裡,需要傳入標準輸入輸出作為數據的輸入輸出流
2、在question方法的回調函數裡,可以獲取到用戶的輸入並進行處理,同時進行瞭close操作來結束程序,否則程序不會結束
3、在close事件的監聽裡,執行瞭process.exit(0)來使程序退出的操作,因為readline模塊隻要一開始獲取用戶輸入就不會結束,必須使用這種直接的方式來結束程序
3 示例1:輸入輸出
示例代碼:
// 引入readline模塊 let readline = require("readline"); // 創建接口實例 let r1 = readline.createInterface({ input: process.stdin, output: process.stdout }) // 調用接口方法 r1.on("line", function (line) { switch (line.trim()) { case "copy": console.log("復制"); break; case "hello": r1.write("Hello "); console.log("World!"); break; case "close": r1.close(); break; default: console.log("沒有找到命令!"); break; } }) // close事件監聽 r1.on("close", function () { console.log("再見"); process.exit(0); })
註意:'line’事件,這個事件就是在用戶輸完一行,按下回車後就會觸發的事件,它會將用戶輸入的數據通過回調函數傳回來,可在此方法裡處理用戶輸入的數據
4 示例2:模擬命令行的輸入輸出
示例代碼:
// 引入readline模塊 let readline = require("readline"); // 創建接口實例 let r1 = readline.createInterface({ input: process.stdin, output: process.stdout }) // 方法方法setPromat(promat) ,就是給每一行設置一個提示符, // 就好比window命令行的> ,這裡設置的是Test> r1.setPrompt("Test> "); // prompt()是最重要的方法,因為它體現瞭readline的核心作用, // 以行為單位讀取數據,prompt方法就是在等待用戶輸入數據 r1.prompt(); // 調用接口方法 // 監聽瞭'line' 事件,因為prompt方法調用一次就隻會讀取一次數據 // 所以,在這個方法又調用瞭一次prompt方法,這樣就可以繼續讀取用戶輸入 // 從而達到一種命令行的效果 r1.on("line", function (line) { switch (line.trim()) { case "copy": console.log("復制"); break; case "hello": console.log("World!"); break; case "close": r1.close(); break; default: console.log("沒有找到命令!"); break; } r1.prompt(); }); // close事件監聽 r1.on("close", function () { console.log("再見"); process.exit(0); })
說明:
1、方法setPromat(promat) ,就是給每一行設置一個提示符,就好比window命令行的> ,這裡設置的是Test>
2、prompt()是最重要的方法,因為它體現瞭readline的核心作用,以行為單位讀取數據,prompt方法就是在等待用戶輸入數據
3、監聽瞭’line’ 事件,因為prompt方法調用一次就隻會讀取一次數據,所以,在這個方法又調用瞭一次prompt方法,這樣就可以繼續讀取用戶輸入,從而達到一種命令行的效果
到此這篇關於Node.js中readline模塊實現終端輸入的文章就介紹到這瞭,更多相關Node.js 終端輸入內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 如何寫Node.JS版本小遊戲
- nodejs利用readline提示輸入內容實例代碼
- Node.js進程管理之子進程詳解
- Python 常用的print輸出函數和input輸入函數
- node.js調用腳本(python/shell)和系統命令