在 Node.js 中接受来自命令行的输入
如何使用内置的 readline Node.js 模块使 Node.js CLI 程序具有交互性
如何使 Node.js CLI 程序具有交互性?
Node.js 自版本 7 以来提供了 readline
模块 来执行此操作: 从可读流(例如 process.stdin
流)获取输入,它在 Node.js 程序执行期间是终端输入,一次一行。
这段代码询问用户的名称,一旦输入文本并且用户按下回车键,我们就会发送问候语。
question()
方法显示第一个参数(一个问题)并等待用户输入。 一旦按下回车,它就会调用回调函数。
在这个回调函数中,我们关闭了 readline 接口。
readline
提供了其他几种方法,请在上面链接的包文档中查看它们。
如果你需要输入密码,最好不要回显,而是显示一个 *
符号。
最简单的方法是使用 readline-sync
包,它在 API 方面非常相似并且开箱即用。
Inquirer.js 包 提供了一个更完整和抽象的解决方案。
你可以使用 npm install inquirer
安装它,然后你可以像这样复制上面的代码:
Inquirer.js 可以让你做很多事情,比如询问多项选择、有单选按钮、确认等等。
了解所有替代方案是值得的,尤其是 Node.js 提供的内置替代方案,但如果你打算将 CLI 输入提升到一个新的水平,Inquirer.js 是最佳选择。