Node.js 在节点JS中不使用process.stdout.write输出日志的方法?

Node.js 在节点JS中不使用process.stdout.write输出日志的方法?,node.js,Node.js,因此,我尝试将两个基于节点的js脚本通过管道连接在一起,这样做就像预期的那样 本质上 $/a.js |/b.js 只要输出到下一个脚本的唯一内容是有效的JSON(例如),管道就可以正常工作。但是我希望在第一个脚本中看到一些调试日志(理想情况下不使用流行的调试模块)。有趣的是,我知道调试模块不会将不需要的数据发送到管道。它是怎么做到的?我不想深入研究他们的代码(懒惰) 似乎console.log和console.error都使用process.stdout/err,所以如果我注销了某些内容,我最

因此,我尝试将两个基于节点的js脚本通过管道连接在一起,这样做就像预期的那样

本质上

$/a.js |/b.js

只要输出到下一个脚本的唯一内容是有效的JSON(例如),管道就可以正常工作。但是我希望在第一个脚本中看到一些调试日志(理想情况下不使用流行的调试模块)。有趣的是,我知道调试模块不会将不需要的数据发送到管道。它是怎么做到的?我不想深入研究他们的代码(懒惰)

似乎console.log和console.error都使用process.stdout/err,所以如果我注销了某些内容,我最终会弄脏管道

有没有办法使用不同的tty插座或其他东西?不知道从哪里开始。

在npm上看起来像:

默认情况下,调试将记录到stderr


debug对node执行此操作:啊,我的错误,我使用了带两个参数的stderr.write。是的,诀窍是使用带一个字符串参数和一个新行的stderr。谢谢
/**
 * Invokes `util.format()` with the specified arguments and writes to stderr.
 */

function log(...args) {
    return process.stderr.write(util.format(...args) + '\n');
}