控制台


¥Console

稳定性: 2 - 稳定的

¥Stability: 2 - Stable

源代码: lib/console.js

node:console 模块提供了一个简单的调试控制台,类似于网络浏览器提供的 JavaScript 控制台机制。

¥The node:console module provides a simple debugging console that is similar to the JavaScript console mechanism provided by web browsers.

该模块导出两个特定组件:

¥The module exports two specific components:

  • Console 类,具有 console.log()console.error()、和 console.warn() 等方法,可用于写入任何 Node.js 流。

    ¥A Console class with methods such as console.log(), console.error(), and console.warn() that can be used to write to any Node.js stream.

  • 全局的 console 实例,配置为写入 process.stdoutprocess.stderr。全局的 console 无需调用 require('node:console') 就可以使用。

    ¥A global console instance configured to write to process.stdout and process.stderr. The global console can be used without calling require('node:console').

警告:全局控制台对象的方法既不像它们类似的浏览器 API 那样始终同步,也不像所有其他 Node.js 流那样始终异步。希望依赖控制台函数的同步/异步行为的程序应该首先弄清楚控制台后备流的性质。这是因为流依赖于当前进程的底层平台和标准流配置。有关详细信息,请参阅 关于进程 I/O 的注意事项

¥Warning: The global console object's methods are neither consistently synchronous like the browser APIs they resemble, nor are they consistently asynchronous like all other Node.js streams. Programs that desire to depend on the synchronous / asynchronous behavior of the console functions should first figure out the nature of console's backing stream. This is because the stream is dependent on the underlying platform and standard stream configuration of the current process. See the note on process I/O for more information.

使用全局的 console 的示例:

¥Example using the global console:

console.log('hello world');
// Prints: hello world, to stdout
console.log('hello %s', 'world');
// Prints: hello world, to stdout
console.error(new Error('Whoops, something bad happened'));
// Prints error message and stack trace to stderr:
//   Error: Whoops, something bad happened
//     at [eval]:5:15
//     at Script.runInThisContext (node:vm:132:18)
//     at Object.runInThisContext (node:vm:309:38)
//     at node:internal/process/execution:77:19
//     at [eval]-wrapper:6:22
//     at evalScript (node:internal/process/execution:76:60)
//     at node:internal/main/eval_string:23:3

const name = 'Will Robinson';
console.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to stderr 

使用 Console 类的示例:

¥Example using the Console class:

const out = getStreamSomehow();
const err = getStreamSomehow();
const myConsole = new console.Console(out, err);

myConsole.log('hello world');
// Prints: hello world, to out
myConsole.log('hello %s', 'world');
// Prints: hello world, to out
myConsole.error(new Error('Whoops, something bad happened'));
// Prints: [Error: Whoops, something bad happened], to err

const name = 'Will Robinson';
myConsole.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to err