使用Node. js输出到命令行

使用Node. js输出到命令行Node.js提供了一个console模块,它提供了大量非常有用的与命令行交互的方法。您可以向console.log传递多个变量,例如:我们还可

大家好,欢迎来到IT知识分享网。

使用控制台模块的基本输出

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

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

最基本和最常用的方法是console.log(),它将传递给它的字符串打印到控制台。

如果你传递一个对象,它会将其呈现为字符串。

您可以向console.log传递多个变量,例如:

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

我们还可以通过传递变量和格式说明符来格式化漂亮的短语。

console.log('My %s has %d ears', 'cat', 2); // My cat has 2 ears
  • %s 将变量格式化为字符串
  • %d 将变量格式化为数字
  • %i 仅将变量格式化为整数部分
  • %o 将变量格式化为对象

示例:

console.log('%o', Number);

清除控制台

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

计数元素

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

使用以下代码: const x = 1 const y = 2 const z = 3 console.count( 'The value of x is ' + x + ' and has been checked .. how many times?' ) console.count( 'The value of x is ' + x + ' and has been checked .. how many times?' ) console.count( 'The value of y is ' + y + ' and has been checked .. how many times?' ) // 打印结果: // The value of x is 1 and has been checked .. how many times?: 1 // The value of x is 1 and has been checked .. how many times?: 2 // The value of y is 2 and has been checked .. how many times?: 1

console.count()会计算一个字符串被打印的次数,并在它旁边打印计数:

可以数一下苹果和橘子:

const oranges = ['orange', 'orange']; const apples = ['just one apple']; oranges.forEach(fruit => { console.count(fruit); }); apples.forEach(fruit => { console.count(fruit); }); // orange: 1 // orange: 2 // just one apple: 1

复位计数

控制台countReset()方法重置控制台使用的计数器。count()

const oranges = ['orange', 'orange']; const apples = ['just one apple']; oranges.forEach(fruit => { console.count(fruit); }); apples.forEach(fruit => { console.count(fruit); }); console.countReset('orange'); oranges.forEach(fruit => { console.count(fruit); }); // orange: 1 // orange: 2 // just one apple: 1 // orange: 1 // orange: 2

请注意对console.countReset(‘orange’)的调用,重新将orange的计数重置为零。

打印堆栈跟踪

在某些情况下,打印函数的调用堆栈跟踪可能很有用,也许可以回答这样一个问题:您是如何到达代码的这一部分的?

你可以使用console.trace():

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

这将打印堆栈跟踪。如果我们在Node中尝试这个,会打印如下所示:

Trace at function2 (file:///Users/repl.js:1:33) at function1 (file:///Users/repl.js:2:25) at file:///Users/repl.js:3:1 at ModuleJob.run (node:internal/modules/esm/module_job:198:25) at async Promise.all (index 0) at async ESMLoader.import (node:internal/modules/esm/loader:385:24) at async loadESM (node:internal/process/esm_loader:88:5) at async handleMainPromise (node:internal/modules/run_main:61:12)

计算花费的时间

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

const doSomething = () => console.log('test'); const measureDoingSomething = () => { console.time('doSomething()'); // do something, and measure the time it takes doSomething(); console.timeEnd('doSomething()'); }; measureDoingSomething();

打印如下:

test doSomething(): 4.396ms

stdout和stderr

我们看到了console。日志非常适合在控制台中打印消息。这就是所谓的标准输出,或stdout。

console.error打印到stderr流。

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

为输出着色

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

转义序列可以参考(https://gist.github.com/iamnewton/)

你可以在Node.js REPL 中尝试一下,它将以黄色打印hi!。

但是,这是低级别的方法。为控制台输出着色的最简单方法是使用库。Chalk 就是这样一个库,除了着色之外,它还有助于其他样式工具,例如使文本加粗、斜体或下划线。

使用npm install chalk@4安装它,然后您可以使用它:

const chalk = require('chalk'); console.log(chalk.yellow('hi!'));

使用chalk.yellow比试图记住转义码要方便得多,而且代码的可读性也更好。

创建进度条

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

此代码片段创建了一个10步进度条,每500ms完成一步。当条形图完成时,我们清除间隔:

const ProgressBar = require('progress'); const bar = new ProgressBar(':bar', { total: 10 }); const timer = setInterval(() => { bar.tick(); if (bar.complete) { clearInterval(timer); } }, 500);
使用Node. js输出到命令行

#程序员##程序#

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/55407.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信