什么是 prompt-async?
prompt-async
是一个基于 Node.js
的模块,可以用来从用户处获取输入。这个模块的主要优势在于它可以异步的获取用户输入,而且支持 tab
键自动完成和 crtl+c
终止等常用的交互操作,极大的方便了前端开发实践。
如何安装 prompt-async?
可以使用 npm
命令来安装:
npm install prompt-async
使用 prompt-async
使用 prompt-async
可以直接 require('prompt-async')
即可,它提供了一个名为 prompt
的方法,其中包括以下参数:
message
: 一个字符串或者配置对象,表示需要展示给用户的信息(必填参数)。options
:自定义配置的对象,包含以下选项:default
:指定默认值async
:是否异步获取 input。mask
:在终端上的行输入过程中占位符的字符。默认为*
。validator
:一个用于验证 input 值的自定义函数。trim
:是否自动清除字符串周围的空格。默认为true
。retry
:当用户输入无效时您可以选择用户是否可以重试。默认为false
。
message
参数应该是一个字符串,代表用户需要输入的提示信息,如下所示:
const prompt = require('prompt-async'); prompt('what is your name?');
此代码将产生如下命令行界面:
what is your name?:
当用户键入名字以及回车时,它将返回一个包含用户输入的对象。为了能够处理这个对象,需要使用如下代码:
const prompt = require('prompt-async'); prompt('what is your name?') .then((result) => { console.log(`Your name is ${result}`); }) .catch((err) => { console.error(err.stack); });
prompt-async 示例代码
下面是一个更为复杂的使用 prompt-async
的示例,包含输入信息以及使用 validator
函数验证输入是否符合规则:
-- -------------------- ---- ------- ----- ------ - ------------------------ ------ -- -- - ------------------- ---- --- ---- ------ ------ -------------- ----- ------ - ----- -------- -------- ----- -- ---- ------- ---------- --------- ---- -- ----------------- --- ------------------ ------------- ----- --- - ----- -------- -------- ---- --- --- ------ ---------- ------------- - -- -------- ------ - --- ----- --- ---------- ---- -- -- ----- -- ----- ------- ---- ------ ---- - --- ---------------- --- ------ ----- ------- -----
在该示例中,首先请求用户输入名字,然后根据输入结果向用户问好,接下来请求用户输入年龄,但是这次使用了一个自定义的 validator
函数(用于验证用户输入的年龄是否满足要求),如果用户输入不符合要求,则会提示用户重新输入。
总结
本文介绍了 Node.js
中一个名为 prompt-async
的 npm 包,与传统的命令行交互方式不同的是,它可以异步的获取用户输入。此外,本文也提供了调用 prompt-async
功能的相关示例代码,在此基础上,读者也可以进行更高级的交互式开发。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600565ff81e8991b448e1ec4