Javascript 将节点脚本发送到console.log并返回数据

Javascript 将节点脚本发送到console.log并返回数据,javascript,node.js,Javascript,Node.js,下面是一个虚拟脚本: console.log('hello'); process.stdout.write(JSON.stringify({ foo: 'bar' })); 如果运行node index.js | jq.这将导致解析错误,因为console.log。是否可能有一个节点脚本,该脚本不向终端发送控制台日志,但从该脚本返回的数据(然后可以通过管道传输到其他脚本)是独立的?我想在上面的例子中,{foo:'bar'}只通过管道传输到jq,但我仍然想看到hello记录到终端。根据conso

下面是一个虚拟脚本:

console.log('hello');
process.stdout.write(JSON.stringify({ foo: 'bar' }));
如果运行
node index.js | jq.
这将导致
解析错误
,因为
console.log
。是否可能有一个节点脚本,该脚本不向终端发送控制台日志,但从该脚本返回的数据(然后可以通过管道传输到其他脚本)是独立的?我想在上面的例子中,
{foo:'bar'}
只通过管道传输到
jq
,但我仍然想看到
hello
记录到终端。

根据
console.log()
输出到
stdout
(作为管道
jq
命令的输入)


您可以将
console.log
调用替换为
console.error
,因为它会输出到
stderr
,并且不会被
jq
命令读取。(除非您将stderr重定向到stdout)

在某些情况下,您是否有可能为日志调用编写接口并覆盖行为