用了yeoman之后,发现有一个控制台中上下选择的功能是怎么用Nodejs实现的
用了yeoman之后,发现有一个控制台中上下选择的功能是怎么用Nodejs实现的
RT,控制台中上线光标选择的那个是怎么做的.求大神指点
用了Yeoman之后,发现有一个控制台中上下选择的功能是怎么用Node.js实现的
在使用Yeoman等工具时,我们经常会遇到一个在控制台中通过上下键选择选项的功能。这种功能通常是通过Node.js中的第三方库来实现的,比如inquirer或readline-sync。这些库可以简化与用户的交互过程,使得控制台应用更加用户友好。
示例代码:使用 inquirer 库实现控制台选择功能
首先,你需要安装inquirer库:
npm install inquirer
然后,你可以使用以下代码创建一个简单的选择界面:
const inquirer = require('inquirer');
// 定义问题列表
const questions = [
{
type: 'list',
name: 'choice',
message: '请选择一个选项:',
choices: ['选项1', '选项2', '选项3'],
default: '选项1'
}
];
// 显示问题并获取用户输入
inquirer.prompt(questions).then((answers) => {
console.log('你选择了:', answers.choice);
});
代码解析
- 引入库:首先需要引入
inquirer库。 - 定义问题列表:
questions数组定义了问题列表,其中包含一个问题对象。 - 问题对象:
type: 设置为'list'表示这是一个列表选择类型的问题。name: 表示答案的键名,用于存储用户的选择。message: 提示信息,显示在问题前面。choices: 可供选择的选项列表。default: 设置默认选中的选项。
- 获取用户输入:通过
inquirer.prompt()方法显示问题并等待用户输入。当用户完成选择后,会进入回调函数,在回调函数中可以处理用户的选择结果。
其他库
除了inquirer,还可以使用readline-sync库来实现类似的功能。不过,inquirer提供了更丰富的功能和更好的用户体验,特别是在处理复杂的表单和多级菜单时。
npm install readline-sync
const readlineSync = require('readline-sync');
let choice = readlineSync.question('请选择一个选项: ', {
choices: ['选项1', '选项2', '选项3']
});
console.log('你选择了:', choice);
以上就是如何使用Node.js实现控制台中的上下选择功能的基本步骤和示例代码。希望对你有所帮助!
贴个截图吧
已经找到类似的了,正在学习,是substack大神写的,叫terminal-menu
要实现一个控制台中的上下选择功能,可以使用 Inquirer.js 这个库。Inquirer.js 是一个用于创建交互式命令行界面的 Node.js 库,它提供了很多方便的方法来处理用户输入。
下面是一个简单的示例代码,展示如何使用 Inquirer.js 来实现一个选择菜单:
-
首先,安装
Inquirer.js:npm install inquirer -
然后,在你的 Node.js 脚本中使用
Inquirer.js实现一个选择菜单:const inquirer = require('inquirer'); inquirer .prompt([ { type: 'list', name: 'choice', message: '请选择一个选项:', choices: ['选项1', '选项2', '选项3'], }, ]) .then((answers) => { console.log('你选择了:', answers.choice); }) .catch((error) => { if (error.isTtyError) { // 如果 TTY 错误,则无法显示问题 console.error('TTY 错误:', error); } else { // 如果非 TTY 错误,则其他未知错误 console.error('未知错误:', error); } });
解释
type: 'list'指定了这是一个列表选择器。name: 'choice'定义了问题的名称,稍后可以通过answers.choice获取用户的答案。message: '请选择一个选项:'显示给用户的提示信息。choices是一个数组,包含了所有可选的选项。
当运行这段代码时,控制台会显示一个包含选项的列表,并允许用户通过上下键进行选择。选择完成后,按回车确认选择,然后程序会输出用户所选择的内容。
这就是使用 Inquirer.js 实现在控制台中实现上下选择功能的基本方法。

