npm 包 just-ask 使用教程

阅读时长 8 分钟读完

作为一个前端工程师,无论是在工作中还是开源项目中,我们经常需要和用户进行交互,收集用户的输入。而 just-ask 是一个基于 Node.js 和 Inquirer.js 的 npm 包,它提供了一种简单、易用的方式来实现终端式的用户交互。本文将详细介绍 just-ask 的使用方法,帮助你更加高效地与用户交互。

安装

在安装之前,假定你已经安装了 Node.js 和 npm。在终端中,输入以下命令来安装 just-ask

当然,你也可以使用 yarn

使用

基础用法

在使用 just-ask 之前,你需要先引入它:

然后,你可以使用 ask 函数来提问用户一系列的问题。

-- -------------------- ---- -------
-----
  -
    ----- --------
    ----- -------
    -------- ----- -- ---- -------
  --
  -
    ----- ----------
    ----- ----------
    -------- ---- --- -------
  --
--
  --------------- -- -
    ---------------------
  --
  -------------- -- -
    -------------------
  ---

上述代码中,我们定义了两个问题。第一个问题使用了 input 类型,用来收集用户的名字。第二个问题使用了 confirm 类型,用来确认用户是否确认。当用户回答完所有的问题之后,then 方法将得到一个包含用户回答的对象。如果出现错误,catch 方法将会捕获到错误信息。

更多问题类型

除了 inputconfirm 类型之外,just-ask 还提供了以下的问题类型:

  • password:用于收集用户的密码。
  • list:用于收集一组固定的回答。
  • rawlist:与 list 类型类似,但是它可以获取数值。
  • expand:用于提供多项选择,支持键盘快捷键。
  • checkbox:用于收集多个回答。
  • editor:用于收集用户的大段输入。

下面我们来分别介绍这些问题类型的使用方法。

password

-- -------------------- ---- -------
-----
  ----- -----------
  ----- -----------
  -------- ------ ---- -----------
--
  -------------- -- -
    -----------------------------
  --
  -------------- -- -
    -------------------
  ---

list

-- -------------------- ---- -------
-----
  ----- -------
  ----- --------
  -------- ------ ----- -- --- -------
  -------- -
    ------
    -------
    --------
  --
--
  -------------- -- -
    --------------------------
  --
  -------------- -- -
    -------------------
  ---

rawlist

-- -------------------- ---- -------
-----
  ----- ----------
  ----- -----------
  -------- ------ -------- -- --- ---- -- --------
  -------- -
    -
      ----- --------- -----------
      ------ -----------
    --
    -
      ----- -------- -----------
      ------ ----------
    --
  --
--
  -------------- -- -
    -----------------------------
  --
  -------------- -- -
    -------------------
  ---

expand

-- -------------------- ---- -------
-----
  ----- ---------
  ----- -------
  -------- ------ ---- -- --- ---- -- ---------
  -------- -
    -
      ---- ----
      ----- --------
      ------ ----
    --
    -
      ---- ----
      ----- ---------
      ------ ----
    --
    -
      ---- ----
      ----- --------
      ------ ----
    --
  --
--
  -------------- -- -
    -------------------------
  --
  -------------- -- -
    -------------------
  ---

checkbox

-- -------------------- ---- -------
-----
  ----- -----------
  ----- ---------
  -------- ------ ------ -- --- -------
  -------- -
    --------
    ---------
    ---------
  --
--
  -------------- -- -
    ---------------------------
  --
  -------------- -- -
    -------------------
  ---

editor

-- -------------------- ---- -------
-----
  ----- ---------
  ----- ------
  -------- ------- ----- - ----- --- -- -----------
--
  -------------- -- -
    ------------------------
  --
  -------------- -- -
    -------------------
  ---

高级用法

在前面的示例中,我们仅仅展示了如何提问用户来获得一些有用的信息。但是,有些时候用户需要提供的信息并不仅仅是一些简单的输入,而是一些更加复杂且需要处理的数据。在这种情况下,可以使用 transformerfilter 属性来对用户提供的数据进行转换和处理。

transformer

transformer 属性用来将用户输入的数据进行转换,例如对用户输入的字符串进行加密或者解析等操作。下面的示例将对用户输入的文本进行转换,首先将文本的首字母大写,接着将所有的空格替换为 -

-- -------------------- ---- -------
----- --- - --------------------

-----
  ----- --------
  ----- -------
  -------- ----- -- ---- -------
  ------------ ------- -- -
    ----- ---------- - -------- -- -
      ------ ------------------------------ - ----------------
    --
    
    ----- --------- - -------- -- -
      ------ --------------------- -----
    --

    ------ -----------------------------
  --
--
  -------------- -- -
    -------------------------
  --
  -------------- -- -
    -------------------
  ---

filter

filter 属性用来对用户提供的数据进行过滤,例如对用户输入的字符串进行统一的格式化等操作。下面的示例将对用户输入的手机号进行验证和格式化,去掉中间的空格和 -,只留下数字:

-- -------------------- ---- -------
----- --- - --------------------

-----
  -
    ----- --------
    ----- -------
    -------- ----- -- ---- -------
  --
  -
    ----- --------
    ----- --------
    -------- ----- -- ---- ----- ---------
    ------- ------- -- -
      ------ --------------- --- ----------------- ----
    --
    --------- ------- -- -
      -- ------------------------ -
        ------ -----
      - ---- -
        ------ -------- ----- --------
      -
    --
  --
--
  --------------- -- -
    ---------------------
  --
  -------------- -- -
    -------------------
  ---

在这个示例中,我们先使用正则表达式对输入的手机号进行验证,如果不符合规则,则返回错误信息,否则依次对输入的字符串进行替换操作,去掉中间的空格和 -

总结

just-ask 是一个简单、易用的 npm 包,它提供了一种高效、灵活的方式来实现终端用户交互。使用 just-ask,我们可以很方便地向用户收集各种信息,并对用户提供的数据进行转换和过滤等操作,从而满足更加复杂的需求。希望这篇文章能够帮助你快速入门 just-ask,在实践中发掘出更多有趣的应用场景。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600556e981e8991b448d3c8e

纠错
反馈