Node.js 入门教程 12 使用 Node.js 输出到命令行

news2025/7/12 11:41:12

Node.js 入门教程

Node.js官方入门教程

Node.js中文网

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

文章目录

      • Node.js 入门教程
      • 12 使用 Node.js 输出到命令行
          • 12.1 使用控制台模块的基础输出
          • 12.2 清空控制台
          • 12.3 元素计数
          • 12.4 打印堆栈踪迹
          • 12.5 计算耗时
          • 12.6 stdout 和 stderr
          • 12.7 为输出着色
          • 12.8 创建进度条

12 使用 Node.js 输出到命令行

12.1 使用控制台模块的基础输出

Node.js 提供了 console 模块,该模块提供了大量非常有用的与命令行交互的方法。

在这里插入图片描述

它基本上与浏览器中的 console 对象相同。

最基础、最常用的方法是 console.log(),该方法会打印传入到控制台的字符串。

如果传入对象,则它会呈现为字符串。

可以传入多个变量到 console.log,例如:

const x = 'x'
const y = 'y'
console.log(x, y)

在这里插入图片描述

Node.js 会全部打印出来。

也可以通过传入变量和格式说明符来格式化用语。

例如:

console.log('我的%s已经%d岁', '猫', 2)

在这里插入图片描述

  • %s 会格式化变量为字符串
  • %d 会格式化变量为数字
  • %i 会格式化变量为其整数部分
  • %o 会格式化变量为对象
console.log('%o', Number)

在这里插入图片描述

12.2 清空控制台

console.clear() 会清除控制台(其行为可能取决于所使用的控制台)。

在这里插入图片描述

12.3 元素计数

console.count() 是一个便利的方法。

使用以下代码:

const x = 1
const y = 2
const z = 3
console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'y 的值为 ' + y + ' 且已经检查了几次?'
)

在这里插入图片描述

count 方法会对打印的字符串的次数进行计数,并在其旁边打印计数:

数苹果和橙子:

const oranges = ['橙子', '橙子']
const apples = ['苹果']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

在这里插入图片描述

12.4 打印堆栈踪迹

在某些情况下,打印函数的调用堆栈踪迹很有用,可以回答以下问题:如何到达代码的那一部分?

可以使用 console.trace() 实现:

const function2 = () => console.trace()
const function1 = () => function2()
function1()

在这里插入图片描述

打印堆栈踪迹。

12.5 计算耗时

可以使用 time()timeEnd() 轻松地计算函数运行所需的时间:

const doSomething = () => console.log('测试')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //做点事,并测量所需的时间。
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

在这里插入图片描述

12.6 stdout 和 stderr

console.log 非常适合在控制台中打印消息。 这就是所谓的标准输出(或称为 stdout)。

console.error 会打印到 stderr 流。

它不会出现在控制台中,但是会出现在错误日志中。

12.7 为输出着色

可以使用转义序列在控制台中为文本的输出着色。 转义序列是一组标识颜色的字符。

在这里插入图片描述

例如:

console.log('\x1b[33m%s\x1b[0m', '你好')

在这里插入图片描述

打印黄色的 你好

当然,这是执行此操作的底层方法。 为控制台输出着色的最简单方法是使用库。

Chalk 是一个这样的库,除了为其着色外,它还有助于其他样式的设置(例如使文本变为粗体、斜体或带下划线)。

在这里插入图片描述

先安装

npm install chalk

在这里插入图片描述

使用

const chalk = require('chalk')
console.log(chalk.yellow('你好'))

在这里插入图片描述

可以看到报错了,开始谷歌,说是版本高了

在这里插入图片描述

降成4.1

在这里插入图片描述

再试一次

在这里插入图片描述

OK。

与尝试记住转义代码相比,使用 chalk.yellow 方便得多,并且代码更具可读性。

12.8 创建进度条

Progress 是一个很棒的软件包,可在控制台中创建进度条。 使用 npm install progress 进行安装。

在这里插入图片描述

在这里插入图片描述

以下代码段会创建一个 10 步的进度条,每 100 毫秒完成一步。 当进度条结束时,则清除定时器:

const ProgressBar = require('progress')


const bar = new ProgressBar(':bar', { total: 10 })
const timer = setInterval(() => {
  bar.tick()
  if (bar.complete) {
    clearInterval(timer)
  }
}, 100)

在这里插入图片描述

可爱捏。

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

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

相关文章

基因组 组装教程 (T2T)

导读 本文将介绍T2T基因组,并提供一份基因组组装的资料,其中包含:基因组组装数据和组装策略介绍;染色体水平基因组组装;基因组补洞;着丝粒和端粒分析等,获取方式见文末。 简介[1] 随着物种基因组…

vscode平台上通过Embedded IDE搭建单片机开发环境

软件安装 安装vscode,具体下载连载如下 [vscode官网下载地址](https://code.visualstudio.com/Download)更改vscode插件安装位置 在C:\Users\13547.vscode\路径中找到extensions,并右键点击extensions文件夹然后点击剪切,这里必须是剪切而不…

Jenkins 构建Maven 项目

Jenkins中自动构建项目的类型有很多,常用的有以下三种: 自由风格软件项目(FreeStyle Project)Maven项目(Maven Project)流水线项目(Pipeline Project) 每种类型的构建其实都可以完成…

Python 中导入csv数据的三种方法

这篇文章主要介绍了Python 中导入csv数据的三种方法,内容比较简单,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下微点阅读小编收集的文章介绍。 Python 中导入csv数据的三种方法,具体内容如下所示: 1、通过…

4、python中函数、匿名函数、递归函数

文章目录函数的创建和调用空函数变量的作用域全局变量局部变量函数内部修改全局变量函数参数传递参数检查常见的4类形参必选参数默认参数可变参数--*args接收的是一个元组关键字参数--**kwargs接收的是一个字典匿名函数练习题,将整型数组的0移动到末尾递归函数求n的…

软件测试 -- 进阶 4 软件测试策略

巧而好度,必攻;勇而好问,必胜;智而好谋,必成。-- 《孔子家语》 翻译:灵巧而有擅长揣摩的人,必定坚定;勇敢而有擅长请教的人,必定取胜;富有智慧而有擅长谋…

Linux系统配置及服务管理-07-文件系统及RAID

文件系统详解 EXT4文件系统 EXT4是第四代扩展文件系统(Fourth extended filesystem) 类型:索引(index ) 文件系统 系统限制: Ext3: 文件系统最大16TBExt4: 文件系统最大16TBXFS : 文件系统最大100TB. 名词 inod…

进程间通信之匿名管道和命名管道

目录 管道是什么 匿名管道 命名管道 命名管道创建方式 管道的特点: 管道是什么 概念:管道是计算机通信领域设计者,设计出的一种单向通信的方式,linux原生提供管道通信 管道都是单向传输内容的 管道中传输的都是"资源&…

SSM_整合篇

一、整合步骤 1.1 数据表的介绍 team表&#xff1a; player表&#xff1a; 1.2 创建maven项目 1.3 pom.xml引入jar依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"…

ps打开图片的三种方式 同步部分基本操作方式

观看本文 需要您的电脑已安装PS工具 如果没有 可以观看我的文章 PS软件下载安装以基本配置 然后打开PS 就会变成一个这样的界面 然后点击右上角的 PS 进入工作区 然后我们就会进入 一个这样的工作区 然后我们在左上角点击文件 选择 打开 然后 在文件框中 找到自己想处理的图…

OJ练习第23题——Z字形变换

OJ练习第23题——Z字形变换题目要求示例Java代码如下&#xff1a;思路分析力扣链接&#xff1a;Z字形变换题目要求 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。请你实现这个将字符串进行指定行数变换的函数&#xff1a;str…

canvas学习

canvas 是一块画布&#xff0c;可以设置宽高 &#xff0c;默认 300 * 150 使用方式 1. 声明书写 canvas标签 2. 拿到canvas的dom 3. 调用方法 getContext (注意 此方法在prototype上) 方法集合&#xff1a; 填充&#xff1a; 1. fillStyle&#xff0c; 设置填充颜色 &…

详解非负矩阵分解(NMF)及其在脑科学中的应用

非负矩阵分解及其在脑科学中的应用 基本原理确定最优因子数量代码实现非负矩阵分解与主成分分析的区别非负矩阵分解在脑科学中的应用应用一:神经发育模式:T2w/T1w比值映射的非负矩阵分解(NMF)应用二:微观结构的协方差模式基本原理 NMF的基本思想可以简单描述为:对于任意给…

Python用PyMC3实现贝叶斯线性回归模型

在本文中&#xff0c;我们将在贝叶斯框架中引入回归建模&#xff0c;并使用PyMC3 MCMC库进行推理。 最近我们被客户要求撰写关于叶斯线性回归模型的研究报告&#xff0c;包括一些图形和统计输出。我们将首先回顾经典频率论的多重线性回归方法。然后讨论贝叶斯如何考虑线性回归。…

8、MyBatis核心配置文件之typeAliases(mybatis-config.xml)

MyBatis核心配置文件之typeAliases&#xff08;mybatis-config.xml&#xff09; 1、&#xff01;&#xff01;&#xff01;&#xff01;注意 2、 设置类型别名&#xff08;比如有的全类名&#xff08;resultType&#xff09;太长了不好使用&#xff09; typeAlias :设置某个类…

Python版本的温湿度+Nokia5110 display(SPI)

前提需要把micropython的固件安装到系统中 安装micropython到esp8266中 本实验需要&#xff1a; 1. ESP8266&#xff08;我的是Wemos D1) 2. DHT11 3. Nokia5110 LCD 连线&#xff1a; DHT11 out --> D2(GPIO-016) (-接入GND&#xff0c;接入3.3vcc) Nokia 5110 LCD We…

GO语言最常用的语法

一 ,变量&#xff1a;变量赋值只能在函数内使用&#xff0c;故第三种方式只能在函数内使用&#xff0c;可使用var()同时定义多个变量变量定义 使用var关键字 var a bool var a bool true 不指定类型直接初始化让编译器选择 var a "abc" 使用 “ : "…

Python入门、环境搭建、变量、数据类型

目录 前景 官方下载 基本数据类型 动态语言的体现 静态语言的体现 弱语言的体现 强语言的体现 注释 整数 浮点型 浮点型计算方案 字符串 布尔 引用数据类型 列表 [ ] 列表方法 集合Set{} 基本方法 特殊需求方法 应用场景 字典{} 常见操作 元组 操作符 练习…

基于ANSYS 2019R1全解一款双吸泵的双向流固耦合方法

作者&#xff1a;李雷 一、导读 对于旋转机械来说&#xff0c;传统设计从理论计算到手工木模图&#xff0c;再到模型泵的加工制造&#xff0c;最后进行相关性能试验。当性能试验与预期效果差距较大的时候还需要修改水力模型。这种传统的设计不仅设计周期长&#xff0c;而且成…

Vue3+nodejs全栈项目(资金管理系统)——后端篇(二)用户模块

文章目录用户模块的增删改查新增创建user_info表初始化路由模块路由模块处理函数(添加&#xff09;测试查询路由模块处理函数(查询)测试编辑&#xff08;根据id&#xff09;路由模块处理函数&#xff08;编辑/更新&#xff09;测试删除(根据id&#xff09;路由模块处理函数测试…