接受來自Node中命令行的輸入

如何使用內置的readline節點模塊使Node.js CLI程序具有交互性

如何使Node.js CLI程序具有交互性?

自版本7起提供的節點readline模塊要完全執行此操作:從可讀流(例如process.stdin流,在執行Node程序期間是終端輸入,一次僅一行。

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
})

readline.question(What's your name?, (name) => { console.log(Hi </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">name</span><span style="color:#e6db74">}</span><span style="color:#e6db74">!) readline.close() })

這段代碼詢問用戶名,一旦輸入了文本並且用戶按下Enter鍵,我們就會發送問候語。

question()方法顯示第一個參數(問題)並等待用戶輸入。一旦按下回車鍵,它將調用回調函數。

在此回調函數中,我們關閉readline接口。

readline還提供了其他幾種方法,我將讓您在上面鏈接的軟件包文檔中進行檢查。

如果您需要密碼,最好不要回顯,而是顯示一個密碼。*象徵。

最簡單的方法是使用readline-sync包裹就API而言,這非常相似,並且可以立即進行處理。

第三方提供了更完整和抽象的解決方案Inquirer.js包

您可以使用安裝npm install inquirer,然後您可以復制上面的代碼,如下所示:

const inquirer = require('inquirer')

var questions = [{ type: ‘input’, name: ‘name’, message: “What’s your name?”, }]

inquirer.prompt(questions).then(answers => { console.log(Hi </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">answers</span>[<span style="color:#e6db74">'name'</span>]<span style="color:#e6db74">}</span><span style="color:#e6db74">!) })

Inquirer.js允許您執行許多操作,例如詢問多項選擇,單選按鈕,確認等。

值得一提的是所有替代方案,特別是Node提供的內置替代方案,但是如果您打算將CLI輸入提高到一個新水平,那麼Inquirer.js是一個最佳選擇。

免費下載我的Node.js手冊


更多節點教程: