接受来自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手册


更多节点教程: