2015-09-26 65 views
0

有沒有一種方法可以在節點應用程序中運行命令行命令並使輸出生效?如何在節點中使用exec輸出live console.log

如:

var exec = require('child_process').exec; 
var fs = require('fs'); 

exec('nightwatch --config nightwatch_dev.json ', function(error, stdout, stderr){ 
    console.log(stdout); 
}); 

或:

var exec = require('child_process').exec; 
var fs = require('fs'); 

exec('rsync -avz /some/folder/ [email protected]:/some/folder/', function(error, stdout, stderr){ 
    console.log(stdout); 
}); 

有許多許多情況下,這將是很好,易於腳本的東西了在節點,但之後的輸出僅轉儲到終端該命令已完成。

乾杯 Ĵ

回答

1

如果他們出現想要的結果,那麼你應該使用spawn()而不是exec()exec()緩衝輸出,然後在流程結束時一次性提供給您。 spawn()返回一個事件發射器,並在發生時獲得輸出。

示例here in the node.js doc對於.spawn()