- assert - 断言
- async_hooks - 异步钩子
- Buffer - 缓冲器
- child_process - 子进程
- cluster - 集群
- console - 控制台
- crypto - 加密
- debugger - 调试器
- dgram - 数据报
- dns - 域名服务器
- domain - 域
- Error - 错误
- events - 事件触发器
- fs - 文件系统
- global - 全局变量
- http - HTTP
- http2 - HTTP/2
- https - HTTPS
- inspector - 检查器
- module - 模块
- net - 网络
- os - 操作系统
- path - 路径
- perf_hooks - 性能钩子
- process - 进程
- punycode - 域名代码
- querystring - 查询字符串
- readline - 逐行读取
- repl - 交互式解释器
- stream - 流
- string_decoder - 字符串解码器
- timer - 定时器
- tls - 安全传输层
- trace_events - 跟踪事件
- tty - 终端
- url - URL
- util - 实用工具
- v8 - V8引擎
- vm - 虚拟机
- wasi - WASI
- worker_threads - 工作线程
- zlib - 压缩
目录
- console(控制台)
- Console 类
new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
console.assert(value[, ...message])
console.clear()
console.count([label])
console.countReset([label])
console.debug(data[, ...args])
console.dir(obj[, options])
console.dirxml(...data)
console.error([data][, ...args])
console.group([...label])
console.groupCollapsed()
console.groupEnd()
console.info([data][, ...args])
console.log([data][, ...args])
console.table(tabularData[, properties])
console.time([label])
console.timeEnd([label])
console.timeLog([label][, ...data])
console.trace([message][, ...args])
console.warn([data][, ...args])
- 仅用于调试的方法
- Console 类
console(控制台)#
源代码: lib/console.js
console
模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
该模块导出两个特定组件:
Console
类,包含console.log()
、console.error()
和console.warn()
等方法,可用于写入任何 Node.js 流。- 全局的
console
实例,配置为写入process.stdout
和process.stderr
。 使用时无需调用require('console')
。
注意:全局的 console
对象的方法既不像浏览器中的 API 那样总是同步的,也不像其他 Node.js 流那样总是异步的。
详见进程 I/O。
使用全局 console
的示例:
console.log('你好世界');
// 打印到 stdout: 你好世界
console.log('你好%s', '世界');
// 打印到 stdout: 你好世界
console.error(new Error('错误信息'));
// 打印到 stderr: [Error: 错误信息]
const name = '描述';
console.warn(`警告${name}`);
// 打印到 stderr: 警告描述
使用 Console
类的示例:
const out = getStreamSomehow();
const err = getStreamSomehow();
const myConsole = new console.Console(out, err);
myConsole.log('你好世界');
// 打印到 out: 你好世界
myConsole.log('你好%s', '世界');
// 打印到 out: 你好世界
myConsole.error(new Error('错误信息'));
// 打印到 err: [Error: 错误信息]
const name = '描述';
myConsole.warn(`警告${name}`);
// 打印到 err: 警告描述
Console 类#
Console
类可用于创建具有可配置的输出流的简单记录器,可以使用 require('console').Console
或 console.Console
(或其结构化对应物)访问:
const { Console } = require('console');
const { Console } = console;
new Console(stdout[, stderr][, ignoreErrors])
#
new Console(options)
#
options
<Object>stdout
<stream.Writable>stderr
<stream.Writable>ignoreErrors
<boolean> 在写入底层流时忽略错误。默认值:true
。colorMode
<boolean> | <string> 此Console
实例设置颜色支持。 设置为true
会在检查值时启用着色。 设置为false
会在检查值时禁用着色。 设置为'auto'
会使颜色支持取决isTTY
属性的值和getColorDepth()
在相应流上返回的值。 如果设置了inspectOptions.colors
,则不能使用此选项。 默认值:'auto'
。inspectOptions
<Object> 指定传给util.inspect()
的选项。groupIndentation
<number> Set group indentation. Default:2
.
创建具有一个或两个可写流实例的新 Console
。
stdout
是一个可写流,用于打印日志或信息输出。
stderr
用于警告或错误输出。
如果未提供 stderr
,则 stdout
用于 stderr
。
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// 自定义的简单记录器。
const logger = new Console({ stdout: output, stderr: errorOutput });
// 像控制台一样使用它。
const count = 5;
logger.log('count: %d', count);
// 在 stdout.log 中: count 5
全局的 console
是一个特殊的 Console
,其输出发送到 process.stdout
和 process.stderr
。
相当于调用:
new Console({ stdout: process.stdout, stderr: process.stderr });
console.assert(value[, ...message])
#
如果 value
为非真或省略,则 console.assert()
会写入消息。
它只写入消息,不影响执行。
输出始终以 "Assertion failed"
开头。
如果提供了 message
,则使用 util.format()
格式化它。
如果 value
为真,则什么也不会发生。
console.assert(true, '什么都不做');
console.assert(false, '%s 工作', '无法');
// Assertion failed: 无法工作
console.assert();
// Assertion failed
console.clear()
#
当 stdout
是 TTY 时,调用 console.clear()
将尝试清除 TTY。
当 stdout
不是 TTY 时,此方法不执行任何操作。
console.clear()
的具体操作可能因操作系统和终端类型而异。
对于大多数 Linux 操作系统, console.clear()
的操作与 clear
的 shell 命令类似。
在 Windows 上, console.clear()
将仅清除当前终端视图中 Node.js 二进制文件的输出。
console.count([label])
#
label
<string> 计数器的显示标签。默认值:'default'
。
维护一个特定于 label
的内部计数器,并将用给定 label
调用 console.count()
的次数输出到 stdout
。
> 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])
#
label
<string> 计数器的显示标签。 默认值:'default'
。
重置特定于 label
的内部计数器。
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>
console.debug(data[, ...args])
#
console.debug()
函数是 console.log()
的别名。
console.dir(obj[, options])
#
obj
<any>options
<Object>showHidden
<boolean> 如果为true
,则也会显示对象的不可枚举属性和符号属性。默认值:false
。depth
<number> 告诉util.inspect()
格式化对象时要递归多少次。这对于检查大型复杂对象很有用。要使其无限递归,可传入null
。默认值:2
。colors
<boolean> 如果为true
,则输出将使用 ANSI 颜色代码进行样式设置。颜色可定制,请参见自定义util.inspect()
颜色。默认值:false
。
在 obj
上使用 util.inspect()
并将结果字符串打印到 stdout
。
此函数绕过 obj
上定义的任何自定义 inspect()
函数。
console.dirxml(...data)
#
...data
<any>
此方法调用 console.log()
将接收到的参数传递给它。
此方法不会生成任何 XML 格式。
console.error([data][, ...args])
#
用换行符打印到 stderr
。
可以传入多个参数,第一个参数用作主要信息,所有其他参数用作类似于 printf(3)
中的替换值(参数都传给 util.format()
)。
const code = 5;
console.error('error #%d', code);
// 打印到 stderr: error #5
console.error('error', code);
// 打印到 stderr: error 5
如果在第一个字符串中找不到格式化元素(例如 %d
),则会在每个参数上调用 util.inspect()
,并且连接结果字符串值。
有关更多信息,请参见 util.format()
。
console.group([...label])
#
...label
<any>
将后续行的缩进增加 groupIndentation
长度个空格。
如果提供了一个或多个 label
,则首先打印它们,而不另外添加缩进。
console.groupCollapsed()
#
console.group()
的别名。
console.groupEnd()
#
减少后续行的缩进 groupIndentation
长度个空格。
console.info([data][, ...args])
#
console.info()
函数是 console.log()
的别名。
console.log([data][, ...args])
#
打印到 stdout
,并加上换行符。
可以传入多个参数,第一个参数作为主要信息,其他参数作为类似于 printf(3)
中的代替值(参数都会传给 util.format()
)。
const count = 5;
console.log('计数: %d', count);
// 打印到 stdout: 计数: 5
console.log('计数:', count);
// 打印到 stdout: 计数: 5
有关更多信息,请参见 util.format()
。
console.table(tabularData[, properties])
#
tabularData
<any>properties
<string[]> 构造表的备用属性。
尝试使用 tabularData
(或使用 properties
)的属性列和 tabularData
的行来构造一个表并记录它。
如果无法将其解析为表格,则回退到仅记录参数。
// 这些不能解析为表格数据。
console.table(Symbol());
// Symbol()
console.table(undefined);
// undefined
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
// ┌─────────┬─────┬─────┐
// │ (index) │ a │ b │
// ├─────────┼─────┼─────┤
// │ 0 │ 1 │ 'Y' │
// │ 1 │ 'Z' │ 2 │
// └─────────┴─────┴─────┘
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);
// ┌─────────┬─────┐
// │ (index) │ a │
// ├─────────┼─────┤
// │ 0 │ 1 │
// │ 1 │ 'Z' │
// └─────────┴─────┘
console.time([label])
#
label
<string> 默认值:'default'
。
启动一个计时器,用以计算一个操作的持续时间。
计时器由一个唯一的 label
标识。
当调用 console.timeEnd()
时,可以使用相同的 label
来停止计时器,并以合适的时间单位将持续时间输出到 stdout
。
例如,如果持续时间为 3869 毫秒,则 console.timeEnd()
显示 "3.869s"。
console.timeEnd([label])
#
label
<string> 默认值:'default'
。
停止先前通过调用 console.time()
启动的计时器,并打印结果到 stdout
:
console.time('100-elements');
for (let i = 0; i < 100; i++) {}
console.timeEnd('100-elements');
// 打印 100-elements: 225.438ms
console.timeLog([label][, ...data])
#
对于先前通过调用 console.time()
启动的计时器,将经过时间和其他 data
参数打印到 stdout
:
console.time('process');
const value = expensiveProcess1(); // 返回 42
console.timeLog('process', value);
// 打印 "process: 365.227ms 42"。
doExpensiveProcess2(value);
console.timeEnd('process');
console.trace([message][, ...args])
#
打印字符串 'Trace: '
到 stderr
,然后将 util.format()
格式化的消息和堆栈跟踪打印到代码中的当前位置。
console.trace('展示');
// 打印: (堆栈跟踪将根据调用跟踪的位置而有所不同)
// Trace: 展示
// at repl:2:9
// at REPLServer.defaultEval (repl.js:248:27)
// at bound (domain.js:287:14)
// at REPLServer.runBound [as eval] (domain.js:300:12)
// at REPLServer.<anonymous> (repl.js:412:12)
// at emitOne (events.js:82:20)
// at REPLServer.emit (events.js:169:7)
// at REPLServer.Interface._onLine (readline.js:210:10)
// at REPLServer.Interface._line (readline.js:549:8)
// at REPLServer.Interface._ttyWrite (readline.js:826:14)
console.warn([data][, ...args])
#
console.warn()
函数是 console.error()
的别名。
仅用于调试的方法#
V8 引擎在通用 API 中公开了以下方法,但除非与检查器(--inspect
标志)一起使用,否则不显示任何内容。
console.profile([label])
#
label
<string>
除非在检查器中使用,否则此方法不显示任何内容。
console.profile()
方法启动带有可选标签的 JavaScript CPU 配置文件,直到调用 console.profileEnd()
。
然后将配置文件添加到检查器的 Profiles 面板中。
console.profile('MyLabel');
// 一些代码
console.profileEnd('MyLabel');
// 将配置文件 'MyLabel' 添加到检查器的 Profiles 面板中。
console.profileEnd([label])
#
label
<string>
除非在检查器中使用,否则此方法不显示任何内容。
如果已启动,则停止当前的 JavaScript CPU 概要分析会话,并将报告打印到检查器的 Profiles 面板。
有关示例,请参见 console.profile()
。
如果在没有标签的情况下调用此方法,则会停止最近启动的配置文件。
console.timeStamp([label])
#
label
<string>
除非在检查器中使用,否则此方法不显示任何内容。
console.timeStamp()
方法将标签为 'label'
的事件添加到检查器的 Timeline 面板中。