什么是readline
readline允許從可讀流中以逐行的方式讀取數(shù)據(jù),比如process.stdin等。 在node.js命令行模式下默認引入了readline模塊,但如果是使用node.js運行腳本的話,則需要自己通過require('readline')方式手動引入該模塊。
怎么使用readline
創(chuàng)建實例
首先、創(chuàng)建一個接口實例,提供一個Object類型的參數(shù)。參數(shù)如下: input: 監(jiān)聽的可讀流(必需) output: 寫入readline的可寫流(必需) completer: 用于 Tab 自動補全的可選函數(shù)(不常用) terminal: 如果希望 input 和 output 流像 TTY 一樣對待,那么傳遞參數(shù) true ,并且經(jīng)由 ANSI/VT100 轉(zhuǎn)碼。 默認情況下檢查 isTTY 是否在 output 流上實例化。(不常用) historySize: 保留行歷史紀錄最大值,為了禁用該值被設置為0,默認為30,只有在terminal被設置為true或通過一個內(nèi)部輸出檢查時,這個選項才有作用,否則歷史緩存機制不會初始化。(不常用)
第一種方式:只傳入兩個必傳參數(shù)
const readLine = require('readline'); let rl = readLine.createInterface(process.stdin, process.stdout);第二種方式:可以傳入其他非必需參數(shù)
const readLine = require('readline'); let rl = readLine.createInterface({ input: process.stdin, output: process.stdout, // 其他參數(shù)省略 })實例
const readLine = require('readline'); let rl = readLine.createInterface({ input: process.stdin, output: process.stdout, prompt: '> 請輸入' }) // 調(diào)用 rl.prompt(); // 控制臺結果顯示:>請輸入注意:一旦該代碼被調(diào)用,Node.js程序?qū)⒉粫K止知道readline接口被關閉,因為接口會在輸入流中不停的等待數(shù)據(jù)。
方法
以下所有的實例均依據(jù)如下rl所創(chuàng)建:
const readLine = require('readline'); let rl = readLine.createInterface({ input: process.stdin, output: process.stdout })1、rl.setPrompt([prompt])
設置提示符,當你使用node運行該文件,并且調(diào)用rl.prompt()時,會在終端看到你設置的提示prompt,即“> 請輸入”
rl.setPrompt('> 請輸入')注意:該方法和上面的實例參數(shù)配置是一樣的效果
2、rl.prompt([preserveCursor])
為用戶輸入準備好readline,將現(xiàn)有的setPrompt選項放到新的一行,讓用戶有一個新的地方開始輸入。將preserveCursor設為true來防止光標位置被重新設定成0。 如需要換行輸入,即在新的一行,輸入信息,可在prompt中加入/n。
rl.prompt(); // 控制臺結果顯示:>請輸入
3、rl.write(data[, key])
當使用readline.createInterface()創(chuàng)建實例時,,如果輸入流為null或者undefined,則寫入數(shù)據(jù)到輸出流。 key是一個表示鍵序列的字面量對象,如果終端是TTY,則可用。
新聞熱點
疑難解答
圖片精選