当没有 console.log 时,为什么管道进入节点不显示输出?

当没有 console.log 时,为什么管道进入节点不显示输出?

这是 Linux bash 终端:

$ node 
> 'aBc'.toLowerCase()
'abc'
> .exit
$ echo "console.log('aBc'.toLowerCase()) " | node
abc
$ echo "'aBc'.toLowerCase()" | node

您可以看到,当我输入 Node REPL 时,'aBc'.toLowerCase()我得到了输出。但是当我执行时,echo "'aBc'.toLowerCase()" | node我没有得到任何输出。为什么?

有没有办法不用 就获得输出console.log?也许是转到其他输出流?

答案1

sn-x在 Reddit 上找到了用户提供的解决方案09f911029d7

当非交互模式运行时,节点不显示正常语句输出。要查看输出,有 2 个选项:

node -i "5+5"

这将强制节点以交互模式运行,并显示输出。

另一种方法是使用:

node -p "5+5"

这将告诉节点打印语句的最后一个执行值。(与之前的结果相同)。

相关内容