作为一个前端工程师,无论是在工作中还是开源项目中,我们经常需要和用户进行交互,收集用户的输入。而 just-ask
是一个基于 Node.js 和 Inquirer.js 的 npm 包,它提供了一种简单、易用的方式来实现终端式的用户交互。本文将详细介绍 just-ask
的使用方法,帮助你更加高效地与用户交互。
安装
在安装之前,假定你已经安装了 Node.js 和 npm。在终端中,输入以下命令来安装 just-ask
:
npm install just-ask --save
当然,你也可以使用 yarn
:
yarn add just-ask
使用
基础用法
在使用 just-ask
之前,你需要先引入它:
const ask = require('just-ask');
然后,你可以使用 ask
函数来提问用户一系列的问题。
-- -------------------- ---- ------- ----- - ----- -------- ----- ------- -------- ----- -- ---- ------- -- - ----- ---------- ----- ---------- -------- ---- --- ------- -- -- --------------- -- - --------------------- -- -------------- -- - ------------------- ---
上述代码中,我们定义了两个问题。第一个问题使用了 input
类型,用来收集用户的名字。第二个问题使用了 confirm
类型,用来确认用户是否确认。当用户回答完所有的问题之后,then
方法将得到一个包含用户回答的对象。如果出现错误,catch
方法将会捕获到错误信息。
更多问题类型
除了 input
和 confirm
类型之外,just-ask
还提供了以下的问题类型:
password
:用于收集用户的密码。list
:用于收集一组固定的回答。rawlist
:与list
类型类似,但是它可以获取数值。expand
:用于提供多项选择,支持键盘快捷键。checkbox
:用于收集多个回答。editor
:用于收集用户的大段输入。
下面我们来分别介绍这些问题类型的使用方法。
password
-- -------------------- ---- ------- ----- ----- ----------- ----- ----------- -------- ------ ---- ----------- -- -------------- -- - ----------------------------- -- -------------- -- - ------------------- ---
list
-- -------------------- ---- ------- ----- ----- ------- ----- -------- -------- ------ ----- -- --- ------- -------- - ------ ------- -------- -- -- -------------- -- - -------------------------- -- -------------- -- - ------------------- ---
rawlist
-- -------------------- ---- ------- ----- ----- ---------- ----- ----------- -------- ------ -------- -- --- ---- -- -------- -------- - - ----- --------- ----------- ------ ----------- -- - ----- -------- ----------- ------ ---------- -- -- -- -------------- -- - ----------------------------- -- -------------- -- - ------------------- ---
expand
-- -------------------- ---- ------- ----- ----- --------- ----- ------- -------- ------ ---- -- --- ---- -- --------- -------- - - ---- ---- ----- -------- ------ ---- -- - ---- ---- ----- --------- ------ ---- -- - ---- ---- ----- -------- ------ ---- -- -- -- -------------- -- - ------------------------- -- -------------- -- - ------------------- ---
checkbox
-- -------------------- ---- ------- ----- ----- ----------- ----- --------- -------- ------ ------ -- --- ------- -------- - -------- --------- --------- -- -- -------------- -- - --------------------------- -- -------------- -- - ------------------- ---
editor
-- -------------------- ---- ------- ----- ----- --------- ----- ------ -------- ------- ----- - ----- --- -- ----------- -- -------------- -- - ------------------------ -- -------------- -- - ------------------- ---
高级用法
在前面的示例中,我们仅仅展示了如何提问用户来获得一些有用的信息。但是,有些时候用户需要提供的信息并不仅仅是一些简单的输入,而是一些更加复杂且需要处理的数据。在这种情况下,可以使用 transformer
和 filter
属性来对用户提供的数据进行转换和处理。
transformer
transformer
属性用来将用户输入的数据进行转换,例如对用户输入的字符串进行加密或者解析等操作。下面的示例将对用户输入的文本进行转换,首先将文本的首字母大写,接着将所有的空格替换为 -
:
-- -------------------- ---- ------- ----- --- - -------------------- ----- ----- -------- ----- ------- -------- ----- -- ---- ------- ------------ ------- -- - ----- ---------- - -------- -- - ------ ------------------------------ - ---------------- -- ----- --------- - -------- -- - ------ --------------------- ----- -- ------ ----------------------------- -- -- -------------- -- - ------------------------- -- -------------- -- - ------------------- ---
filter
filter
属性用来对用户提供的数据进行过滤,例如对用户输入的字符串进行统一的格式化等操作。下面的示例将对用户输入的手机号进行验证和格式化,去掉中间的空格和 -
,只留下数字:
-- -------------------- ---- ------- ----- --- - -------------------- ----- - ----- -------- ----- ------- -------- ----- -- ---- ------- -- - ----- -------- ----- -------- -------- ----- -- ---- ----- --------- ------- ------- -- - ------ --------------- --- ----------------- ---- -- --------- ------- -- - -- ------------------------ - ------ ----- - ---- - ------ -------- ----- -------- - -- -- -- --------------- -- - --------------------- -- -------------- -- - ------------------- ---
在这个示例中,我们先使用正则表达式对输入的手机号进行验证,如果不符合规则,则返回错误信息,否则依次对输入的字符串进行替换操作,去掉中间的空格和 -
。
总结
just-ask
是一个简单、易用的 npm 包,它提供了一种高效、灵活的方式来实现终端用户交互。使用 just-ask
,我们可以很方便地向用户收集各种信息,并对用户提供的数据进行转换和过滤等操作,从而满足更加复杂的需求。希望这篇文章能够帮助你快速入门 just-ask
,在实践中发掘出更多有趣的应用场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600556e981e8991b448d3c8e