将命令的响应流式传输到节点



我正在尝试制作一个节点包,该包执行一个永久脚本,该脚本不断打印数据并将其传递给包调用者。

我使用 exec 对象来调用以下命令:

var exec = require('child_process').exec;
// ...
exec("script always", function(error, stdout, stderr) {
    if (error instanceof Error) {
        throw error;
    }
    // here's where everything gets messy
    if(callback)
        callback(stream)
});

此命令会一直打印数据,直到我停止它。现在,如何将此控制台输出流式传输到另一个想要实现的节点事件?我一直在阅读有关可读流的信息,但我不知道如何将它们联系在一起(实际上,呵呵,为了示例,它们具有getReadableStreamSomehow()功能)。

你应该使用 spawn ,而不是 exec ,如此处所述。这将返回一个对象,您可以在其中直接访问程序的流,因此您可以轻松pipe它们,例如,订阅它们的data事件。

有关如何捕获 curl 命令的输出的示例,请参阅此示例。

希望这有帮助:-)

相关内容

  • 没有找到相关文章

最新更新