Node.js API详解之 console模块用法详解
- 作者: 妖邪y
- 来源: 51数据库
- 2021-07-08
本文实例讲述了node.js api详解之 console模块用法。分享给大家供大家参考,具体如下:
console模块简介
说明:
console 模块提供了一个简单的调试控制台,类似于 web 浏览器提供的 javascript 控制台。
console 模块导出了两个特定的组件:
一个 console 类,包含 console.log() 、 console.error() 和 console.warn() 等方法,可以被用于写入到任何 node.js 流。
一个全局的 console 实例,可被用于写入到 process.stdout 和 process.stderr。
全局的 console 使用时无需调用 require('console')。
demo:
const fs = require('fs');
/* 全局console */
console.log('你好世界');
// 输出: 你好世界
console.log('你好%s', '世界');
// 输出: 你好世界
console.error(new error('错误信息'));
// error: 错误信息
// at object. (/users/xiaoqiang/documents/work/demo/nodeapi/app.js:7:15)
// at module._compile (module.js:569:30)
// at object.module._extensions..js (module.js:580:10)
// at module.load (module.js:503:32)
// at trymoduleload (module.js:466:12)
// at function.module._load (module.js:458:3)
// at function.module.runmain (module.js:605:10)
// at startup (bootstrap_node.js:158:16)
// at bootstrap_node.js:575:3
const name = '描述';
console.warn(`警告:${name}`);
//警告:描述
/* 全局console */
const out = fs.createwritestream('./stdout.log');
const err = fs.createwritestream('./stderr.log');
const myconsole = new console.console(out, err);
myconsole.log('你好世界');
// 打印: '你好世界'到 stdout.log
myconsole.log('你好%s', '世界');
// 打印: '你好世界'到 stdout.log
myconsole.error(new error('错误信息'));
// 打印: [error: 错误信息]到 stderr.log
const name = '描述';
myconsole.warn(`警告${name}`);
//打印: '警告描述' 到 stderr.log
console 类
说明:
console 类可用于创建一个具有可配置的输出流的简单记录器,
可以通过require('console').console或console.console使用
demo:
const { console } = require('console');
const { console } = console;
new console(stdout[, stderr])
说明:
通过传入一个或两个可写流实例,创建一个新的 console 对象
stdout:一个可写流,用于打印日志或输出信息。
stderr: 用于输出警告或错误。
如果没有传入 stderr ,则警告或错误输出会被发送到 stdout
全局的 console 是一个特殊的 console 实例,
它的输出会发送到 process.stdout 和 process.stderr
demo:
const { console } = require('console');
const fs = require('fs');
const output = fs.createwritestream('./stdout.log');
const erroroutput = fs.createwritestream('./stderr.log');
const logger = new console(output, erroroutput);
// 像 console 一样使用
logger.log('name: %s', 'xiaoqiang');
//stdout.log 中打印: name: xiaoqiang
console.assert(value[, message][, …args])
说明:
一个简单的断言测试,验证 value 是否为真。
value:断言条件,如果不为真,则抛出 assertionerror
message:如果提供了 message,则使用 util.format() 格式化并作为错误信息使用。
区别于浏览器的console.assert(),node中的assert()如果断言非真的话会抛出异常终止程序。
demo:
const output = fs.createwritestream('./stdout.log');
const erroroutput = fs.createwritestream('./stderr.log');
const logger = new console(output, erroroutput);
logger.assert(false, 'whoops %s', 'didn\'t work')
// assertionerror [err_assertion]: whoops didn't work
console.clear()
说明:
当 stdout 是一个 tty 时,调用 console.clear() 将尝试清除 tty。
当 stdout 不是一个tty时,该方法什么都不做。
console.count([label])
说明:
维护一个指定名称的内部计数器, 并且输出该名称调用 console.count() 的次数。
label:计数器名称
demo:
> console.count()
default: 1
undefined
> console.count('default')
default: 2
undefined
> console.count('abc')
abc: 1
undefined
> console.count('xyz')
xyz: 1
undefined
> console.count('abc')
abc: 2
undefined
> console.count()
default: 3
undefined
console.countreset([label = 'default'])
说明:
重置指定 label 的内部计数器。
label:计数器的名称, 默认为 'default'。
demo:
> console.count('abc');
abc: 1
undefined
> console.countreset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>
console.dir(obj[, options])
说明:
在 obj 上使用 util.inspect() 并打印结果字符串到 stdout,
util.inspect() 方法返回 object 的字符串表示,主要用于调试。
showhidden:如果为 true,则该对象中的不可枚举属性和 symbol 属性也会显示。默认为 false。
depth: 告诉 util.inspect() 函数当格式化对象时要递归多少次。 默认为 2。 设为 null 可无限递归。
colors: 如果为 true,则输出会带有 ansi 颜色代码。 默认为 false。 颜色是可定制的,
demo:
console.dir(console)
// console {
// log: [function: bound consolecall],
// info: [function: bound consolecall],
// warn: [function: bound consolecall],
// error: [function: bound consolecall],
// dir: [function: bound consolecall],
// time: [function: bound consolecall],
// timeend: [function: bound consolecall],
// trace: [function: bound consolecall],
// assert: [function: bound consolecall],
// console: [function: console],
// debug: [function: debug],
// dirxml: [function: dirxml],
// table: [function: table],
// group: [function: group],
// groupcollapsed: [function: groupcollapsed],
// groupend: [function: groupend],
// clear: [function: clear],
// count: [function: count],
// marktimeline: [function: marktimeline],
// profile: [function: profile],
// profileend: [function: profileend],
// timeline: [function: timeline],
// timelineend: [function: timelineend],
// timestamp: [function: timestamp] }
console.error([data][, …args])
说明:
打印到 stderr,并带上换行符。 可以传入多个参数。
demo:
console.error('error: %d', 0x100008);
//error: 1048584
console.group([…label])
说明:
将后续行的缩进增加两个空格。
demo:

console.groupcollapsed()
说明:
console.group()的一个别名.
console.groupend()
说明:
将后续行的缩进减少两个空格。与console.group()搭配使用。
console.info([data][, …args])
说明:
console.info() 函数是 console.log() 的一个别名。
demo:
console.info('name: %s', 'xiaoqiang');s
//name: xiaoqiang
console.log([data][, …args])
说明:
打印到 stdout,并带上换行符。
demo:
console.log('name: %s', 'xiaoqiang');
//name: xiaoqiang
console.log('name:', 'xiaoqiang');
//name: xiaoqiang
console.time(label)
说明:
启动一个定时器,用以计算一个操作的持续时间。
定时器有一个唯一的 label 标识。
当调用 console.timeend() 时,可以使用相同的 label 来停止定时器,
并以毫秒为单位将持续时间输出到 stdout。 定时器持续时间精确到亚毫秒。
demo:
console.time('run time');
for (var i = 100000; i >= 0; i--) {}
console.timeend('run time');
//run time: 0.718ms
console.timeend(label)
说明:
停止之前通过调用 console.time() 启动的定时器,并打印结果到 stdout
console.trace([message][, …args])
说明:
打印字符串 'trace :' 到 stderr ,并通过 util.format() 格式化消息堆栈打印代码踪迹。
用以跟踪代码的当前位置。
demo:
console.trace('run time error');
// trace: run time error
// at object. (/users/xiaoqiang/documents/work/demo/nodeapi/app.js:5:9)
// at module._compile (module.js:569:30)
// at object.module._extensions..js (module.js:580:10)
// at module.load (module.js:503:32)
// at trymoduleload (module.js:466:12)
// at function.module._load (module.js:458:3)
// at function.module.runmain (module.js:605:10)
// at startup (bootstrap_node.js:158:16)
// at bootstrap_node.js:575:3
console.warn([data][, …args])
说明:
console.warn()函数是console.error()的一个别名。
希望本文所述对大家node.js程序设计有所帮助。
