【nodejs 命令行交互神器 - inquirer.js】

需求

大家在开发时,有时需要从命令行读取用户的输入,或者让用户选择。在nodejs中,这个怎么实现?

原生实现 ❌

process.stdin.setEncoding('utf8');process.stdin.on('readable', () => {let chunk;// 使用循环确保我们读取所有的可用输入while ((chunk = process.stdin.read()) !== null) {console.log(`你输入的数据是: ${chunk}`);}
});process.stdin.on('end', () => {process.stdout.write('结束输入.\\n');
});

可以看到 ,整体比较麻烦 ,而且可扩展性不强,如果不是单纯输入,而需要用户选择等,还要更多代码实现。

inquirer框架 ✅

输入


代码

import input from '@inquirer/input';(async () => {const answer = await input({ message: 'Enter your name' });console.log(answer)
})()

选择


代码

import select, { Separator } from '@inquirer/select';const answer = await select({message: 'Select a package manager',choices: [{name: 'npm',value: 'npm',description: 'npm is the most popular package manager',},{name: 'yarn',value: 'yarn',description: 'yarn is an awesome package manager',},new Separator(),{name: 'jspm',value: 'jspm',disabled: true,},{name: 'pnpm',value: 'pnpm',disabled: '(pnpm is not available)',},],
});

其还支持更多丰富的交互方式,可以在github上搜Inquirer.js查看其更多用法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/690241.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品鉴中的挑战与探索:如何勇敢尝试不同类型的云仓酒庄雷盛红酒

品鉴云仓酒庄雷盛红酒不仅是一种感官的享受,更是一种挑战与探索的过程。不同类型的云仓酒庄雷盛红酒具有各自与众不同的风味和特点,通过勇敢尝试不同类型的红酒,我们可以拓展自己的品鉴视野,发现更多未知的美妙滋味。 首先&#x…

基于Nios软件实现流水灯+串口输出

基于NIOS-II软核实现流水灯串口输出 引言: ​ 在现代电子设计领域,FPGA(现场可编程门阵列)因其灵活性和并行处理能力而成为实现复杂数字系统的首选平台。Nios II,作为Altera(现为Intel旗下)提供…

模拟集成电路(3)----单级放大器(共源极)

模拟集成电路(3)----单级放大器(共源极) 放大是模拟电路的基本功能 大多数自然模拟信号太小而无法处理需要足够的信噪比 理想的放大器 线性:无限的幅度和频率范围 输入阻抗无限大 输出阻抗无限小 共源放大器 共源放大器就是将源极接A…

[初阶数据结构】单链表

前言 📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL。 📚本文收录于初阶数据结构系列,本专栏主要是针对时间、空间复杂度,顺序表和链表、栈和队列、二叉树以及各类排序算法,持…

2024数维杯数学建模B题完整论文讲解(含每一问python代码+结果+可视化图)

大家好呀,从发布赛题一直到现在,总算完成了2024数维杯数学建模挑战赛生物质和煤共热解问题的研究完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B题论…

如何解读 Web 自动化测试 Selenium API?

Web自动化测试是一种通过编写代码来模拟用户操作,并验证Web应用程序的功能和性能的技术。Selenium是一个流行的Web自动化测试工具,它提供了一组API来与Web浏览器进行交互。在本文中,我们将深入探讨Selenium API,并解释如何从零开始…

C++ list介绍(迭代器失效)

一、常用接口 reverse逆置 sort排序&#xff08;默认升序&#xff09; 仿函数greater<int> merge合并&#xff0c;可以全部合并&#xff0c;也可以一部分合并 unique&#xff1a;去重&#xff08;先排序&#xff0c;再去重&#xff09; remove&#xff1a;删除e值&#…

scanf留下的那一片云彩

【题目描述】 给出一个由O和X组成的串&#xff08;长度为1&#xff5e;80&#xff09;&#xff0c;统计得分。每个O的得分为目前连续出现的O的个数&#xff0c;X的得分为0。例如&#xff0c;OOXXOXXOOO的得分为1200100123。 输入第一行表示有n个字符串&#xff0c;后续是n行字…

在IDEA中使用 Spring Initializr 新建 spring boots 项目

【在IDEA中使用 Spring Initializr 新建 spring boots 项目 - CSDN Apphttp://t.csdnimg.cn/mVs5P Spring Initializr 创建spring boots项目 添加到pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec…

OpenAI 推出革命性网络搜索工具,挑战谷歌霸主地位!

OpenAI即将推出的新搜索工具标志着人工智能技术在搜索引擎领域的深入应用&#xff0c;该工具将结合自然语言处理、机器学习和大数据分析等技术&#xff0c;为用户提供个性化、精准的搜索结果&#xff0c;极大地提升了搜索体验的质量和效率&#xff0c;这对于专业领域的用户来说…

探索生产者/消费者模式:解决并发编程中的资源竞争

序言 在并发编程中&#xff0c;资源竞争是一个常见的问题。为了有效地管理资源并确保线程安全&#xff0c;需要采用一些有效的方法。其中之一是生产者/消费者模式&#xff0c;它是一种经典的并发设计模式&#xff0c;用于解决生产者和消费者之间的协作问题。本文将深入探讨生产…

外卖点餐单店+多店自由切换小程序源码系统全功能版 带完整的安装代码包以及搭建部署教程

近年来&#xff0c;外卖市场持续火爆&#xff0c;但许多餐饮商家在接入外卖平台时面临着诸多困扰。高昂的平台费用、复杂的操作流程以及数据安全隐患等问题&#xff0c;让商家们倍感压力。为了解决这些问题&#xff0c;小编给大家分享一款集单店与多店管理于一体的外卖点餐系统…