2016-05-01 62 views
2

我有這個小任務,我有一個我運行的可執行文件,它給了我一個json行的流程。節點偵聽一個shell可執行文件的輸出

我想要一個節點腳本,可以監聽該可執行文件並處理輸出。

可執行我只是通過端子短與運行:

./generator 

我這樣做之後,將開始運行並顯示JSON文件,直到我手動停止。

+0

看看節點庫中的child_process https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options - 你應該能夠將監聽器添加到子進程和JSON的stdout中的「data」。解析什麼出來 – Catalyst

回答

1
var spawn = require('child_process').spawn; 

var content = ''; 

var child = spawn('./generator'); 
child.stdout.on('data', function(data) { 
    content += data; 
}); 

child.on('close', function() { 
    console.log(content); 
}); 

這是一個工作代碼,您可以運行該代碼作爲子代生成生成器腳本並接收其所有標準輸出。

希望這會有所幫助。

+0

你可以請在你的代碼中添加一些上下文嗎? – ppperry

0

看看包裝ndjson。你會將你的子進程的標準輸出放入ndjson.parse(),這將返回一個可讀的流。您將聽取該可讀流上的data事件,並獲取已經爲您解析的對象。 (ndjson自述文件中的示例直接適用於您的情況)。

相關問題