Node.js 中的 console
模块提供了简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
该模块到处两个特定组件:
console.log()
、console.error()
和 console.warn()
等方法,可用于写入任何 Node.js 流console
实例,配置为写入 process.stdout
和 process.stderr
。使用时无需调用 require('console')
注意:全局的 console
对象的方法既不像浏览器中的 API 那样总是同步,也不像其他 Node.js 流那样总是异步。
🌰 示例:Console 类的使用方法
const { Console } = require('console');const { Console } = console;
在浏览器和 Node.js 中均可使用 console.log
和 console.error
,但是在 Node.js 中,两者的处理稍有区别。
当你在 Node.js 中将以下代码写入名为 index.js
的文件中时,并在终端执行,你会直接看到两者的输出:
console.log('Hello world!');// Hello world!console.log('Bye Bye!');// Bye Bye!
虽然它们看起来可能一样,但实际上系统对它们的处理方式是不同的。如果你查阅 Node.js 文档的 console
部分,会看到 console.log
是输出 stdout
,而 console.error
用的是 stderr
。
每个进程都有三个可用的默认 Stream:
stdin
流用来处理进程的输入,例如按下按钮或重定向输出stdout
流用于程序的输出stderr
用于错误消息简而言之,这允许我们在 shell 中使用重定向(>
)和管道(|
)来处理错误和诊断信息,它们是与程序的实际输出结果是分开的。虽然 >
允许我们将命令的输出重定向到文件中,但是 2>
允许我们将 stderr
的输出重定向到文件中。例如,下面的命令会将 Hello there
传给一个名为 hello.log
的文件并把 Bye Bye!
传到一个名为 error.log
的文件中。
node index.js > hello.log 2> error.log
参考资料: