Node.js 入门教程 13 在 Node.js 中从命令行接收输入

news2024/11/29 10:32:56

Node.js 入门教程

Node.js官方入门教程

Node.js中文网

本文仅用于学习记录,不存在任何商业用途,如侵删

文章目录

      • Node.js 入门教程
      • 13 在 Node.js 中从命令行接收输入

13 在 Node.js 中从命令行接收输入

如何使 Node.js CLI 程序具有交互性?

从版本 7 开始,Node.js 提供了 readline 模块来执行以下操作:

在这里插入图片描述

每次一行地从可读流(例如 process.stdin 流,在 Node.js 程序执行期间该流就是终端输入)获取输入。

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
})


readline.question(`你叫什么名字?`, name => {
  console.log(`你好 ${name}!`)
  readline.close()
})

在这里插入图片描述

这段代码会询问用户名,当输入了文本并且用户按下回车键时,则会发送问候语。

question() 方法会显示第一个参数(即问题),并等待用户的输入。 当按下回车键时,则它会调用回调函数。

在此回调函数中,关闭了 readline 接口。

readline 还提供了其他几个方法,详见上面的文档链接。

如果需要密码,则最好不要回显密码,而是显示 * 符号。

最简单的方式是使用 readline-sync 软件包,其在 API 方面非常相似。

在这里插入图片描述

先安装

在这里插入图片描述

嗯,白安了

Inquirer.js 软件包则提供了更完整、更抽象的解决方案。

在这里插入图片描述

可以使用 npm install inquirer 进行安装,然后复用上面的代码如下:

在这里插入图片描述

const inquirer = require('inquirer')


var questions = [
  {
    type: 'input',
    name: 'name',
    message: "你叫什么名字?"
  }
]


inquirer.prompt(questions).then(answers => {
  console.log(`你好 ${answers['name']}!`)
})

在这里插入图片描述

感觉还是版本高了的原因

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

OK。

其实也可以在项目的package.json文件中,指定type字段为module

在这里插入图片描述

这样就可以用import了

在这里插入图片描述

Inquirer.js 可以执行许多操作,例如询问多项选择、展示单选按钮、确认等。

所有的可选方案都值得了解,尤其是 Node.js 提供的内置方案,但是如果打算将 CLI 输入提升到更高的水平,则 Inquirer.js 是更优的选择。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

卡塔尔世界杯--程序员的诗和远方

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 卡塔尔世界杯–程序员的诗和远方 2022年卡塔尔世界杯(FIFA World Cup Qatar 2022)第二十二届世界杯足球赛,历史上首次在卡塔尔和中…

【学习笔记44】JavaScript的事件传播

JavaScript的事件传播一、事件传播1、事件传播的说明2、阻止事件传播二、目标冒泡捕获1、冒泡2、捕获三、事件委托1、事件委托的说明2、为什么要用事件委托四、阻止默认事件1、方法一2、方法二一、事件传播 在触发子元素的事件时, 会将行为传播给父级的同类型事件触发了子元素的…

机器学习1综述

文章目录一、综述学习环境:二、机器学习方法的分类1、监督学习;2、非监督学习;3、半监督学习;4、增强学习;三、机器学习方法分类2、批量学习(离线学习)Batch Learing;3、参数学习&am…

二叉树的递归问题

目录 一、相同的树 二、另一棵树的子树 三、翻转二叉树 四、平衡二叉树 五、对称二叉树 一、相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是…

【毕业设计-课程设计】-超声波测距

资源链接在文章最后,订阅查看获取全部内容及资料,如需可私信提供硬件。 目 录 1 绪论 2 1.1 项目研究背景及意义 2 2 总体设计方案及论证 2 2.1 总体方案设计 2 3 硬件实现及单元电路设计 3 3.1 主控制模块 3 3.2 电源设计 4 3.3 超声波测试模块 4 3.3.1 超声波的特性 5 3.3…

【Python】顺序、条件、循环语句

文章目录一. 顺序语句二. 条件语句1. 什么是条件语句2. 缩进和代码块3. 空语句 pass4. 练习三. 循环语句1. while 循环2. for 循环一. 顺序语句 默认情况下,Python 的代码执行顺序,是从上到下依次执行的: 执行结果一定为 “123”&#xff0…

【工具门户】Backstage配置使用PostgreSQL(三)

先决条件 If the database is not hosted on the same server as the Backstage app, the PostgreSQL port needs to be accessible (the default is 5432 or 5433) PostgreSQL数据库默认端口为5432或5433,如果数据库与Backstage应用不在同一台机器上,需开放PostgreSQL端口…

MyBatis框架一二级缓存含代码演示

目录 1.什么是缓存? 2. Mybatis的一级缓存 2.1实验一: 2.2实验二: 3.Mybatis的二级缓存 3.1 二级缓存需要配置才可以使用: 3.2 实验开始!! 4.总结 1.什么是缓存? 缓存就是数据交换的缓冲区(称作Cache),当某一…

学习Python中turtle模块的基本用法(2:基本绘图函数测试)

个人感觉turtle模块中的绘图函数是按人手拿着画笔一笔一画地画图的思路定义的,这与C#中的GDI函数、html5中canvas的绘图函数及Tkinter中Canvas的绘图函数的定义思路存在差异,但也能完成后面绝大部分的绘图功能(目前看到的turtle文章及帮助文档…

安装OpenGL

提示错误信息: (base) C:\Users\Tina\PycharmProjects\FunnyToys-main>conda install opengl Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Collecting…

python 栈空间不足异常 Process finished with exit code: -1073741571

问题现象 在pycharm使用debug模式调试代码时,异常退出,且错误码为-1073741571。除了错误码外,并没有看到其它报错。 分析 查阅资料: Process finished with exit code -1073741571 (0xC00000FD) when trying to implement ab…

AxureRP9的新特性介绍和技巧分享

AxureRP自去年8月第一个测试版本发布以来,已经一年多了,官方版本已经发布了近半年,但这个版本的用户声誉是褒贬不一的。许多用户反馈了他们对新版本的喜欢和肯定,但一些老用户仍然不愿意接受它,甚至保持抵制。 根据我…

【Hack The Box】linux练习-- Tabby

HTB 学习笔记 【Hack The Box】linux练习-- Tabby 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月22日🌴 &#x1f36…

【数据结构】基础:二叉树

【数据结构】基础:二叉树基础 摘要:本文将会介绍二叉树的基础内容,首先引入树的概念,了解树的基本概念与性质,再对二叉树的概念和性质进行分析,最后对其方法进行实现,最重要的是理解对于二叉树方…

世界65个国家贸易开放度数据 2005-2019年

一、数据介绍 数据名称:UNtrade数据库 数据年份:2005-2019年 数据范围:世界65个国家 数据来源:各地方统计局 部分数据如下: 二、参考文献 用途:研究人民币实际汇率与贸易差额之间的关系等。 [1]卢向…

R语言文本挖掘tf-idf,主题建模,情感分析,n-gram建模研究

数据集中的Usenet公告板包括新汽车,体育和密码学等主题。最近我们被客户要求撰写关于主题建模的研究报告,包括一些图形和统计输出。我们对20个Usenet公告板的20,000条消息进行分析。 相关视频:文本挖掘:主题模型(LDA&a…

SpringBoot SpringBoot 原理篇 2 自定义starter 2.1 记录系统访客独立IP访问次数案例介绍

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇2 自定义starter2.1 记录系统访客独立IP访问次数案例介绍2.1.1 介绍2.1.2 需求…

SpringCloud 组件Gateway服务网关【断言工厂过滤器工厂】

目录 1:断言工厂 2:过滤器工厂 2.1:路由过滤器的种类 2.2:请求头过滤器 2.3:默认过滤器 2.4:总结 1:断言工厂 路由断言工厂Route Predicate Factory 路由配置包括: 1. 路由…

C++_串口编程_官方示例:监视通信事件

这是微软官方的一个例子,这个例子中,如果不做修改,那么他是可以异步运行的,会出现一个错误:官方也说了一下,但是不太好懂,我拷贝过来放在这里,作为参考。 如果无法立即完成重叠的操作…

1_MyBatis入门

原生JDBC实现CURD的问题 1 编码繁琐 2 需要我们自己将结果集映射成对象 3 性能不太好 连接池 缓存 4 SQL语句和java代码的耦合度特别高 5 … … MyBatis 本是Apache的一个开源项目iBatis, 2010年这个项目由Apache Software Foundation 迁移到了Google Code,且改名为…