- assert - 断言
- Buffer - 缓冲器
- child_process - 子进程
- cluster - 集群
- console - 控制台
- crypto - 加密
- dgram - 数据报
- dns - 域名服务器
- Error - 异常
- events - 事件
- fs - 文件系统
- global - 全局变量
- http - HTTP
- https - HTTPS
- module - 模块
- net - 网络
- os - 操作系统
- path - 路径
- process - 进程
- querystring - 查询字符串
- readline - 逐行读取
- repl - 交互式解释器
- stream - 流
- string_decoder - 字符串解码器
- timer - 定时器
- tls - 安全传输层
- tty - 终端
- url - 网址
- util - 实用工具
- v8 - V8引擎
- vm - 虚拟机
- zlib - 压缩
Node.js v10.8.0 文档
目录
-
-
- 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
模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
该模块导出了两个特定的组件:
- 一个
Console
类,包含console.log()
、console.error()
和console.warn()
等方法,可以被用于写入到任何 Node.js 流。 - 一个全局的
console
实例,可被用于写入到process.stdout
和process.stderr
。 全局的console
使用时无需调用require('console')
。
注意:全局的 console 对象的方法既不总是同步的(如浏览器中类似的 API),也不总是异步的(如其他 Node.js 流)。 详见 进程 I/O。
例子,使用全局的 console
:
console.log('你好世界');
// 打印: '你好世界'到 stdout。
console.log('你好%s', '世界');
// 打印: '你好世界'到 stdout。
console.error(new Error('错误信息'));
// 打印: [Error: 错误信息]到 stderr。
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('错误信息'));
// 打印: [Error: 错误信息]到 err。
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
将会使控制台在检查数据时为其上色,设为auto
会使是否启用颜色取决于isTTY
属性的值和对应的数据流的getColorDepth()
返回的值。默认为auto
。
用一个或两个输出流实例创建一个新的 Console
。 输出流 stdout
用来记录日志和信息;stderr
用来记录警告和错误。如果不提供 stderr
,则 stdout
会被用作 stderr
。
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// custom simple logger
const logger = new Console({ stdout: output, stderr: errorOutput });
// use it like console
const count = 5;
logger.log('count: %d', count);
// in stdout.log: count 5
全局符号 console
是一个特殊的 Console
实例,其输出会被送往 process.stdout
和 process.stderr
。它等价于调用:
new Console({ stdout: process.stdout, stderr: process.stderr });
console.assert(value[, ...message])#
value
<any> The value tested for being truthy....message
<any> All arguments besidesvalue
are used as error message.
A simple assertion test that verifies whether value
is truthy. If it is not,
Assertion failed
is logged. If provided, the error message
is formatted
using util.format()
by passing along all message arguments. The output is
used as the error message.
console.assert(true, 'does nothing');
// OK
console.assert(false, 'Whoops %s work', 'didn\'t');
// Assertion failed: Whoops didn't work
Calling console.assert()
with a falsy assertion will only cause the message
to be printed to the console without interrupting execution of subsequent code.
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
的内部计数器并且输出到 stdout
指定 label
调用 console.count()
的次数。
> 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> The display label for the counter. Default:'default'
.
Resets the internal counter specific to label
.
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>
console.debug(data[, ...args])#
The console.debug()
function is an alias for console.log()
.
console.dir(obj[, options])#
在 obj
上使用 util.inspect()
并打印结果字符串到 stdout
。
该函数会绕过任何定义在 obj
上的自定义的 inspect()
函数。
可选的 options
对象可以传入用于改变被格式化的字符串:
-
showHidden
- 如果为true
,则该对象中的不可枚举属性和 symbol 属性也会显示。默认为false
。 -
depth
- 告诉util.inspect()
函数当格式化对象时要递归多少次。 这对于检查较大的复杂对象很有用。 默认为2
。 设为null
可无限递归。 -
colors
- 如果为true
,则输出会带有 ANSI 颜色代码。 默认为false
。 颜色是可定制的,详见定制util.inspect()
颜色。
console.dirxml(...data)#
...data
<any>
This method calls console.log()
passing it the arguments received.
Please note that this method does not produce any XML formatting.
console.error([data][, ...args])#
打印到 stderr
,并带上换行符。
可以传入多个参数,第一个参数作为主要信息,其他参数作为类似于 printf(3)
中的代替值(参数都会传给 util.format()
)。
const code = 5;
console.error('error #%d', code);
// 打印: error #5 到 stderr
console.error('error', code);
// 打印: error 5 到 stderr
如果在第一个字符串中没有找到格式化元素(如 %d
),则在每个参数上调用 util.inspect()
并将结果字符串值拼在一起。
详见 util.format()
。
console.group([...label])#
...label
<any>
将后续行的缩进增加两个空格。
如果提供了一个或多个 label
s,则首先打印这些 label
s,而不需要额外的缩进。
console.groupCollapsed()#
console.group()
的一个别名.
console.groupEnd()#
将后续行的缩进减少两个空格。
console.info([data][, ...args])#
console.info()
函数是 console.log()
的一个别名。
console.log([data][, ...args])#
打印到 stdout
,并带上换行符。
可以传入多个参数,第一个参数作为主要信息,其他参数作为类似于 printf(3)
中的代替值(参数都会传给 util.format()
)。
const count = 5;
console.log('count: %d', count);
// 打印: count: 5 到 stdout
console.log('count:', count);
// 打印: count: 5 到 stdout
详见 util.format()
。
console.table(tabularData[, properties])#
tabularData
<any>properties
<string[]> Alternate properties for constructing the table.
Try to construct a table with the columns of the properties of tabularData
(or use properties
) and rows of tabularData
and log it. Falls back to just
logging the argument if it can’t be parsed as tabular.
// These can't be parsed as tabular data
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>
启动一个定时器,用以计算一个操作的持续时间。
定时器由一个唯一的 label
标识。
当调用 console.timeEnd()
时,可以使用相同的 label
来停止定时器,并以毫秒为单位将持续时间输出到 stdout
。
定时器持续时间精确到亚毫秒。
console.timeEnd([label])#
label
<string>
停止之前通过调用 console.time()
启动的定时器,并打印结果到 stdout
:
console.time('100-elements');
for (let i = 0; i < 100; i++) {}
console.timeEnd('100-elements');
// 打印 100-elements: 225.438ms
注意:从 Node.js v6.0.0 开始,console.timeEnd()
删除了计时器以避免泄漏。
在旧版本上,计时器依然保留。
它允许 console.timeEnd()
可以多次调用同一标签。
此功能是非计划中的,不再被支持。
console.timeLog([label][, ...data])#
For a timer that was previously started by calling console.time()
, prints
the elapsed time and other data
arguments to stdout
:
console.time('process');
const value = expensiveProcess1(); // Returns 42
console.timeLog('process', value);
// Prints "process: 365.227ms 42".
doExpensiveProcess2(value);
console.timeEnd('process');
console.trace([message][, ...args])#
打印字符串 'Trace :'
到 stderr
,并通过 util.format()
格式化消息与堆栈跟踪在代码中的当前位置。
console.trace('Show me');
// 打印: (堆栈跟踪会根据被调用的跟踪的位置而变化)
// Trace: Show me
// 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()
的一个别名。
Inspector only methods#
The following methods are exposed by the V8 engine in the general API but do
not display anything unless used in conjunction with the inspector
(--inspect
flag).
console.markTimeline([label])#
label
<string> Default:'default'
This method does not display anything unless used in the inspector. The
console.markTimeline()
method is the deprecated form of
console.timeStamp()
.
console.profile([label])#
label
<string>
This method does not display anything unless used in the inspector. The
console.profile()
method starts a JavaScript CPU profile with an optional
label until console.profileEnd()
is called. The profile is then added to
the Profile panel of the inspector.
console.profile('MyLabel');
// Some code
console.profileEnd('MyLabel');
// Adds the profile 'MyLabel' to the Profiles panel of the inspector.
console.profileEnd([label])#
This method does not display anything unless used in the inspector. Stops the
current JavaScript CPU profiling session if one has been started and prints
the report to the Profiles panel of the inspector. See
console.profile()
for an example.
If this method is called without a label, the most recently started profile is stopped.
console.timeStamp([label])#
label
<string>
This method does not display anything unless used in the inspector. The
console.timeStamp()
method adds an event with the label 'label'
to the
Timeline panel of the inspector.
console.timeline([label])#
label
<string> Default:'default'
This method does not display anything unless used in the inspector. The
console.timeline()
method is the deprecated form of console.time()
.
console.timelineEnd([label])#
label
<string> Default:'default'
This method does not display anything unless used in the inspector. The
console.timelineEnd()
method is the deprecated form of
console.timeEnd()
.