简介
npm包prompter是Node.js中一个非常有用的交互式命令行控制工具,可以用于快速、简单地在命令行中和终端交互。在前端开发中,我们通常使用npm安装和管理依赖,prompter可以方便地在这个基础上添加命令行交互系统,创建交互式的用户工作流。
安装
你可以在你的项目中通过npm安装prompter:
npm install prompter
使用
prompter以Promise为基础,我们可以通过将函数传递给propmpter函数的参数来创建交互式命令行工具。下面是一个最简单的例子:
const prompter = require('prompter'); prompter.prompt('Hello, what is your name? ') .then(function(name) { console.log(`Hello, ${name}`); });
我们通过调用prompt方法向用户发出了一个问题,并在获取用户输入后将用户输入的结果作为Promise的解决值。如果你在命令行中运行这个脚本,你将看到它询问你的名字。
Hello, what is your name?
然后,如果你输入"name",你将得到下面的输出:
Hello, name
虽然这段代码非常简单,但它提供了一个方便的交互式界面来生成程序的输出。
除了字符串,prompter还支持其他输入类型。例如,我们可以要求用户输入数字:
const prompter = require('prompter'); prompter.prompt('How old are you? ', 'number') .then(function(age) { console.log(`You are ${age} years old.`); });
在这个例子中,我们使用了“number”参数告诉prompter我们想要接受一个数字类型的输入。如果用户输入了一个无效的数字,将会抛出一个异常。
控制流
像我们前面看到的一样,prompter将用户输入作为Promise的解决值,这可以让我们使用链式promise来组合多个交互式问题和输入。例如:
-- -------------------- ---- ------- ----- -------- - -------------------- --------------------- -- ---- ----- -- -------------------- - ------ ---------------------- -------- --- --- --- ---- -- ---------- -- ------------------- - ---------------- --- ------ ----- ------- ---
在这个例子中,我们询问用户名,然后在Promise with handler里面再次使用prompt功能等待用户输入。如果用户输入的是数字,则我们将直接输出其年龄。
选项
prompter支持许多选项,可以使交互更加灵活。例如:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------- - - ---------- ------------------ ----------- -- -------------- ---- -- --------------------- -- ---- ----- -- ----- -------- -------------------- - ------------------ ---------- ---
在这个例子中,我们将一个选项对象传递给prompt函数,这个选项对象告诉prompter我们想要使用一个名为“validator”的函数验证用户的输入是否是字母数字和空格的组合。我们还告诉prompter最大重试3,以及每个重试之间的1秒时段。
结论
prompter是一个非常有用的npm包,它可以使Node.js在命令行中运行的脚本更加交互化。通过使用promise,prompters可以方便地创建交互式流程,支持多种数据输入类型,并提供自定义选项来获取用户输入。这些功能使它成为前端开发人员尤其是Node.js开发人员的必备工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb3ebb5cbfe1ea06111e9