简介
prompt-actions
是一个 Node.js 的命令行交互库,用于在命令行运行时请求用户输入,并接收和处理用户的响应。它为前端开发者提供了方便快捷的方式来与终端进行交互。本文将介绍如何使用 prompt-actions
库。
安装
可以通过 npm 安装 prompt-actions
:
--- ------- --------------
基本使用
首先,需要在代码中引入 prompt-actions
:
----- - ------ - - --------------------------
接下来,我们可以使用 prompt
函数来获取用户输入:
-------------- ----- ---- ------------------- -- - ------------------- ----------- ---
运行这段代码后,程序将要求用户输入他们的名称,然后输出 Hello, XXX!
,其中 XXX 是用户输入的名称。
如果你需要获取多个用户输入,可以传递一个数组给 prompt
函数:
--------------- ----- ---- ------- ------- ----- ---- -------------------- ----- -- - ----------------- ---- -- -------- --- --- --- ------ ----- ------- ---
注意,这里使用了 ES6 的解构赋值来从 Promise 返回的数组中获取输入的值。
除此之外还有许多选项可供使用,例如设置默认值、限制输入内容等等。这些选项将在下一节中详细介绍。
高级用法
设置默认值
可以使用 default
选项来设置默认值:
-------- -------- ------- ----- ---- ---- -------- -- -------- -------- ------- -------------- -- - ------------------- ----------- ---
在用户没有输入任何内容的情况下,将会自动使用默认值。
限制输入内容
可以使用 validate
选项来对用户输入进行验证:
-------- -------- ------- ----- - ------ ------- - --- ----- --------- ------- -- - ----- ------ - ---------------- -- --------------- - ------ ---- ---- ----- - --------- - -- ------- - - -- ------ - --- - ------ ---- ---- ----- - ------ ------- - --- ----- - ------ ----- -- ---------------- -- - ---------------- ------- ------------- ---
在这个例子中,首先将用户输入的内容转换为数字,如果转换失败则返回错误信息。然后检查输入是否在指定范围内,如果超出范围则同样返回错误信息。最后,如果一切正常,则返回 true
表示输入合法。
自定义输入类型
可以使用 type
选项来自定义输入类型,默认类型是字符串。例如,我们可以创建一个新的输入类型用于获取密码:
----- - ------ - - -------------------------- -------------------------- - -------- ------ ----------- ------- ----- --- -------- ----- ----------- ------------------ -- - ---------------- ------- --------------- ---
在这里,我们使用 addType
函数添加了一个新的输入类型 password
,并将其设置为隐藏模式。然后,我们可以像使用其他输入类型一样使用它来获取用户输入。
示例代码
下面是一个完整的示例代码,其中演示了 prompt-actions
的多种用法:
----- - ------ - - -------------------------- -------- - -------- ------- ----- ---- ------- -- - -------- ------- ----- ---- ------ -------- ----- --------- ------- -- - ----- --- - ---------------- -- ------------ - ------ ---- ---- ----- - --------- - -- ---- - - -- --- - ---- - ------ ---- ---- ----- - ------ ------- - --- ------ - ------ ----- -- -- - ----- ----------- - ----------------------------------------------------------- -------- ---------------------------------------------------------------------------------------