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)
可爱捏。