【问题标题】:Child stdout set to "inherit" and "onData" listener子标准输出设置为“继承”和“onData”侦听器
【发布时间】:2015-02-19 08:32:04
【问题描述】:

在 nodejs 应用程序中,我需要生成一个子进程,并将 stdio 设置为“继承”模式,所以基本上:

var child = spawn('some/command', [], {
  stdio: [process.stdin, process.stdout, process.stderr]
});

这非常重要,因为我希望子进程以原始模式写入它的标准输出,并且我希望我的用户也可以看到这个“原始输出”。同时,我想解析该进程的常规输出。通常我会这样做:

child.stdout.on('data', function () {
  // ...
});

但在这种情况下,没有child.stdout。第二种猜测是用process.stdout,不过坦白说

process.stdout.on('data', function () {
  // ...
});

也无法正常工作。我想知道是否还有其他方法可以捕获该数据?

【问题讨论】:

    标签: node.js stream stdio child-process spawn


    【解决方案1】:

    您可以使用像 pty 这样的模块,它可以让您创建一个可以读取/写入的“假 tty”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2010-09-27
      • 2014-10-10
      • 2021-12-30
      • 1970-01-01
      • 2014-09-26
      • 2023-04-01
      相关资源
      最近更新 更多