控制台
【Console】
源代码: 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 流。- 一个全局
console实例,配置为写入process.stdout和process.stderr。全局console可以在不调用require('node:console')的情况下使用。
警告:全局 console 对象的方法既不像它们所类似的浏览器 API 一样始终同步,也不像所有其他 Node.js 流一样始终异步。希望依赖 console 函数同步/异步行为的程序应首先弄清 console 所依赖的底层流的性质。这是因为该流取决于当前进程的底层平台和标准流配置。有关更多信息,请参见 关于进程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