检测节点是否收到stdin

时间:2016-10-01 00:02:25

标签: javascript node.js

我有兴趣确定是否正在调用我的节点脚本,而不是将数据流入其中。

也就是说,我想区分这两种情况

$ node index.js
$ ls | node index.js

我找到了这种方法来确定:

if(process.stdin.isTTY) {
  console.log('called without pipe');
} else {
  console.log('called with data streamed in');
}

可靠吗?它在语义上是否合适?

1 个答案:

答案 0 :(得分:2)

回答我自己的问题。是的,根据Node Core团队成员的说法,这是一个很好的方法:

https://twitter.com/thealphanerd/status/782009479382626304